2016-09-09 4 views
1

GridViewアイテムのダイアログボックスを作成しようとしていますフラグメントを拡張するクラスをクリックしていますが、そのクラスがFragmentDialogを拡張していると説明していますフラグメントを拡張するクラスのDialogBoxを表示

public class Favourite extends Fragment { 

GridView gv; 
Context context; 
SQLiteDatabase db; 
String[] title_array,id_array; 
Bitmap[] img_array; 
Cursor c,c1; 


@Nullable 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    db = getActivity().openOrCreateDatabase("MyDb",android.content.Context.MODE_PRIVATE ,null); 

} 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View InputFragmentView = inflater.inflate(R.layout.favourite, container, false); 

    Cursor c=db.rawQuery("select DISTINCT thumb from image",null); 
    Cursor c1=db.rawQuery("select DISTINCT title,id from vdetail",null); 

    title_array = new String[c1.getCount()]; 
    id_array = new String[c1.getCount()]; 
    img_array=new Bitmap[c.getCount()]; 

    int i = 0; 

    if (c.moveToFirst()&&c1.moveToFirst()) { 
     do { 
      byte[] imagess = c.getBlob(0); 
      Bitmap bm = BitmapFactory.decodeByteArray(imagess, 0, imagess.length); 
      String title = c1.getString(0); 
      String id = c1.getString(1); 
      title_array[i] = title; 
      id_array[i] = id; 
      img_array[i] = bm; 
      i++; 

      Log.d("getting data", "on retrieving: "); 
     } while (c.moveToNext()&&c1.moveToNext()); 
    } 
    gv = (GridView) InputFragmentView.findViewById(R.id.fav_gv); 
    gv.setAdapter(new FavourtireAdapter(getActivity(),title_array,id_array,img_array)); 

    gv.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { 
     @Override 
     public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { 
      Log.d("OK", "onItemLongClick: "); 
      return false; 
     } 
    }); 
    return InputFragmentView; 

} 

}

GridViewの項目は、リスナーが、私はあなたがAlert Dialogを使用することができ、ダイアログボックスに

+0

この問題は何ですか? alertdialogを使用できます。 – Sandeep

答えて

1

Dialogを使用しようとしている場合。 AndroidのDialog機能を使用してください。クラスを実装または拡張する必要はありません。

final Dialog dialog = new Dialog(context); 
    //if not title required 
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    //layout of dialog 
    dialog.setContentView(R.layout.alert_dialog); 
    dialog.show(); 

ダイアログレイアウトにImageViewがある場合(イメージのみを表示する場合)。

//for example button 
    imageView = (ImageView) dialog.findViewById(R.id.your_id); 
    imageView.setImageBitmap(your_image); 
+1

ありがとう、それは働いた:) –

+0

@hatibabrarアップルードは良いでしょう。 :) –

+0

ここにあなたはバディに行く:) –

2

を表示したい部分でクリックし、私のクラスであります内側はon Click Listenerです。

AlertDialog ad = new AlertDialog.Builder(getActivity()) 
      .create(); 
    ad.setCancelable(false); 
    ad.setTitle(title); 
    ad.setMessage(message); 
    ad.setButton(context.getString(R.string.ok_text), new DialogInterface.OnClickListener() { 

     public void onClick(DialogInterface dialog, int which) { 
      dialog.dismiss(); 
     } 
    }); 
ad.show(); 
+0

R.String.ok_text mで文字列を作成する文字列ファイルに文字列を作成する –

+0

@hatibabrarこの文字列を 'string name =" ok_text "> OK'のように 'string.xml'ファイル内に定義します。 –

+0

@hatibabrarそれを働かせるか、それとも問題に直面しましたか?お知らせ下さい。 –

0

public void showDialog(String title, String msg) { 
    final AlertDialog.Builder builder = new AlertDialog.Builder(con); 
    builder.setTitle(title); 

    builder.setMessage(msg); 

    builder.setPositiveButton("Yes", 
      new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int id) { 

        //Action on yes 

       } 

      }); 
    builder.setNegativeButton("No", 
      new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int id) { 
        dialog.dismiss(); 
        //action on no 

       } 
      }); 

    AlertDialog alert = builder.create(); 
    alert.show(); 
} 

この方法を試してみて、その後、単一の[OK]ボタンをしたい場合は、@jaydroider」答えに従ってください。

+0

java.lang.NullPointerExceptionを与える: –

+1

問題がコンテキストである可能性があります。ユーザコンテキストcon = getApplicationContext();開発を始める前にいくつかの基本をお読みください。主な問題は基本的な知識です。 – Sandeep

関連する問題