0

私は次のコードを持っています...そして、このリストは基本的にクリックされるアイテムを「リッスン」しており、クリックすると、ボタンが内側にあるダイアログボックスが開きます。ボタンをリッスンさせることができません... リッスンしても...アプリがクラッシュします。そして、Eclipseは自動的に onClick() を「オーバーライド」することを許可していません

WeatherAdapter adapter = new WeatherAdapter(this,R.layout.listview_header_row, weather_data);
            listView1 = (ListView)findViewById(R.id.listView1);
            View header = (View)getLayoutInflater().inflate(R.layout.listview_header_row, null);
            //listView1.addHeaderView(header);
            listView1.setAdapter(adapter);  
            listView1.setClickable(true);
            listView1.setOnItemClickListener(new AdapterView.OnItemClickListener() {

              @Override
              public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {

                    Dialog  dialog = new Dialog (Activity2.this);
                    dialog.setContentView(R.layout.dialogxml);
                    dialog.setCancelable(true);
                    ImageView dcover=(ImageView) dialog.findViewById(R.id.dimageView1);
                    TextView dtitle = (TextView) dialog.findViewById(R.id.dtextView1);
                    TextView dyear = (TextView) dialog.findViewById(R.id.dtextView2);
                    TextView ddirector = (TextView) dialog.findViewById(R.id.dtextView3);
                    TextView drating = (TextView) dialog.findViewById(R.id.dtextView4);
                    TextView len1 = (TextView) dialog.findViewById(R.id.textView77);
                    Button postbutton=(Button) findViewById(R.id.buttonfb);

                    InputStream is;
                    try {
                        is = (InputStream) new URL(full_data[position][0]).getContent();
                        Drawable dd = Drawable.createFromStream(is, "src name");
                        dcover.setImageDrawable(dd);
                    } catch (MalformedURLException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }


                    dtitle.setText("Name: "+full_data[position][1]);
                    dyear.setText("Year: "+full_data[position][2]);
                    ddirector.setText("Director: "+full_data[position][4]);
                    drating.setText("Rating: "+full_data[position][3]+"/10");
                    dialog.show();
          //NOT ABLE TO DO THIS!!          postbutton.setOnClickListener(new View.OnClickListener() { 
                        @Override
                        public void onClick(View v) {

                        }
                      });


              }
4

3 に答える 3

0

エラーをキャッチ

ボタン postbutton=(ボタン) findViewById(R.id.buttonfb); する必要があります

ボタン postbutton=(ボタン) dialog.findViewById(R.id.buttonfb); ボタンがダイアログ内にある場合。

于 2012-11-30T04:32:46.240 に答える
0

-postbuttonは の中にあると思います。dialogそうであれば、次の方法で見つける必要がありますid......

Button postbutton=(Button)dialog.findViewById(R.id.buttonfb);

于 2012-11-30T04:38:08.830 に答える
0

コードをこれに置き換えます..

findviewbyidボタンがダイアログ内にあるため、ダイアログビューを使用する必要があります。

WeatherAdapter adapter = new WeatherAdapter(this,R.layout.listview_header_row, weather_data);
        listView1 = (ListView)findViewById(R.id.listView1);
        View header = (View)getLayoutInflater().inflate(R.layout.listview_header_row, null);
        //listView1.addHeaderView(header);
        listView1.setAdapter(adapter);  
        listView1.setClickable(true);
        listView1.setOnItemClickListener(new AdapterView.OnItemClickListener() {

          @Override
          public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {

                Dialog  dialog = new Dialog (Activity2.this);
                dialog.setContentView(R.layout.dialogxml);
                dialog.setCancelable(true);
                ImageView dcover=(ImageView) dialog.findViewById(R.id.dimageView1);
                TextView dtitle = (TextView) dialog.findViewById(R.id.dtextView1);
                TextView dyear = (TextView) dialog.findViewById(R.id.dtextView2);
                TextView ddirector = (TextView) dialog.findViewById(R.id.dtextView3);
                TextView drating = (TextView) dialog.findViewById(R.id.dtextView4);
                TextView len1 = (TextView) dialog.findViewById(R.id.textView77);
                Button postbutton=(Button) dialog.findViewById(R.id.buttonfb);

                InputStream is;
                try {
                    is = (InputStream) new URL(full_data[position][0]).getContent();
                    Drawable dd = Drawable.createFromStream(is, "src name");
                    dcover.setImageDrawable(dd);
                } catch (MalformedURLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }


                dtitle.setText("Name: "+full_data[position][1]);
                dyear.setText("Year: "+full_data[position][2]);
                ddirector.setText("Director: "+full_data[position][4]);
                drating.setText("Rating: "+full_data[position][3]+"/10");
                dialog.show();
            postbutton.setOnClickListener(new View.OnClickListener() { 
                    @Override
                    public void onClick(View v) {

                    }
                  });


          }
于 2012-11-30T05:23:42.027 に答える