0

リストビューを表示するアプリケーションがあります。ユーザーがリストビュー項目をクリックすると、XML レイアウトを示すダイアログ ボックスが表示されるようにする予定です。しかし、私はちょっとした問題を抱えています。

私はリストビューを稼働させ、動作させています。onclick リスナーのアクティビティ クラスのコードを次に示します。

 final ListView lv1 = (ListView) findViewById(R.id.listV_main);
        lv1.setAdapter(new ItemListBaseAdapter(this, image_details));

        lv1.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> a, View v, int position, long id) { 
                Object o = lv1.getItemAtPosition(position);
                ItemDetails obj_itemDetails = (ItemDetails)o;
                Toast.makeText(VanillaBlockList.this, "Loading details for: " + " " + obj_itemDetails.getName(), Toast.LENGTH_LONG).show();

                if(obj_itemDetails.getPrice().equals("ID - 1")){

                    // custom dialog
                    final Dialog dialog = new Dialog(Context);
                    dialog.setContentView(R.layout.va_type1);
                    dialog.setTitle("Information");

                    dialog.show();

                }

                if(obj_itemDetails.getPrice().equals("ID - 2")){
              /* Stuff here*/ }
            } 

        });
    } 

問題は、上記のコードのこの部分です。

if(obj_itemDetails.getPrice().equals("ID - 1")){

                    // custom dialog
                    final Dialog dialog = new Dialog(Context);
                    dialog.setContentView(R.layout.va_type1);
                    dialog.setTitle("Stone");

                    dialog.show();

                }

新しいダイアログを作成する行でエラーが発生しています。Eclipse では、"new Dialog(Context)" の "Context" 部分に赤い下線が引かれ、エラーを示しています。

これを修正する方法を知っている人はいますか?

ありがとう

4

3 に答える 3

2

エラーの場所ではなく、エラーの内容を教えていただけますか?

私は非常に基本的なこと以外に Context や Dialog をあまり扱っていませんが、クラスだけでなく Context オブジェクトを渡してみてください。onActivityCreate メソッドで、

Context c = this;

その後

final Dialog dialog = new Dialog(c);
于 2012-09-01T14:23:14.557 に答える
0

最終ダイアログダイアログ=新しいダイアログ(コンテキスト); 問題はContextの使用にある可能性があります。アクティビティname.thisまたはgetApplicationContext()を使用します。

于 2012-09-01T14:17:41.670 に答える
0

メソッド/コンストラクターにのみオブジェクトを渡すことができます。「コンテキスト」はオブジェクトではありません。new Dialog(Context) の代わりに、getApplicationContext() または getActivityContext() を試してください。

final Dialog dialog = new Dialog(getApplicationContext());
于 2012-09-01T14:11:48.073 に答える