簡體   English   中英

對話框內容不會根據該行更改

[英]Dialog box content doesnot change according to that row

我在所有行中都提供了一個按鈕,如果單擊該按鈕對話框必須出現在其中,則該對話框必須根據該行顯示內容。

public void bindView(View view, Context context, final Cursor cursor){
                int row_id = cursor.getColumnIndex("_id");  //Your row id (might need to replace)
                TextView tv = (TextView) view.findViewById(R.id.text2);
                final TextView tv1 = (TextView) view.findViewById(R.id.text1);
                TextView tv2 = (TextView) view.findViewById(R.id.date);
                CheckBox cb = (CheckBox) view.findViewById(R.id.checkbox);
                int col1 = cursor.getColumnIndex("expname");
                final String expname = cursor.getString(col1 );
                int col2 = cursor.getColumnIndex("expcontent");
                final String expcontent = cursor.getString(col2 );
                int col3 = cursor.getColumnIndex("expdate");
                final String expdate = cursor.getString(col3);
                cb.setTag(cursor.getPosition());
                cb.setChecked(mCheckStates.get(cursor.getPosition(), false));
                cb.setOnCheckedChangeListener(this);
              //  TextView tv2 = (TextView) view.findViewById(R.id.text3);
                //cursor.getColumnName(1)
                tv.setText( expname);
                tv1.setText( expcontent);
               tv2.setText(expdate);
                //tv2.setText( ""+cursor.getColumnIndex(GinfyDbAdapter.CATEGORY_COLUMN_COUNT));
             //   String[] from = new String[]{GinfyDbAdapter.CATEGORY_COLUMN_TITLE, GinfyDbAdapter.CATEGORY_COLUMN_CONTENT, GinfyDbAdapter.CATEGORY_COLUMN_COUNT}
                ImageButton button = (ImageButton) view.findViewById(R.id.sms);
                button.setOnClickListener(new OnClickListener(){
                    @Override
                    public void onClick(View v){
                        StringBuffer sb2 = new StringBuffer();
                    sb2.append("Title:");
                        sb2.append(Html.fromHtml(expname));
                        sb2.append(",Content:");
                        sb2.append(Html.fromHtml(expcontent));
                        sb2.append("\n");
                        String strContactList1 = (sb2.toString().trim());
                        sendsmsdata(strContactList1);
                    }
                });

                ImageButton button1 = (ImageButton) view.findViewById(R.id.mail);
                button1.setOnClickListener(new OnClickListener(){
                    @Override
                    public void onClick(View v){
                        StringBuffer sb3 = new StringBuffer();
                    sb3.append("Title:");
                        sb3.append(Html.fromHtml(expname));
                        sb3.append(",Content:");
                        sb3.append(Html.fromHtml(expcontent));
                        sb3.append("\n");
                        String strContactList2 = (sb3.toString().trim());
                        sendmaildata(strContactList2);
                    }
                });

                ImageButton button2 = (ImageButton) view.findViewById(R.id.btnaudioprayer);
                button2.setOnClickListener(new OnClickListener(){
                    @Override
                    public void onClick(View v){
                        //ADD STUFF HERE you know which row is clicked. and which button
                        typed = expcontent;
                        speakOut();
                    }
                });


                ImageButton button3 = (ImageButton) view.findViewById(R.id.bBlame);
                button3.setOnClickListener(new OnClickListener(){
                    @Override
                    public void onClick(View v){
                        //ADD STUFF HERE you know which row is clicked. and which button
                        dialog.show();

                    }
                });

                dialog=new Dialog(ExperiencesActivity.this);
                dialog.setContentView(R.layout.exp1);
                dialog.setCancelable(true);
                dialog.setTitle("My Experiences");

                textview1 = (TextView)dialog.findViewById(R.id.tv11);



                textview1.setText("Title:" + expname);
                textview2 = (TextView)dialog.findViewById(R.id.tv22);
                textview2.setText("Content:" + expcontent);
                Button button23=(Button)dialog.findViewById(R.id.btnSubmit);
                button23.setOnClickListener(new OnClickListener() {
                    @Override
                    public void onClick(View v) {

                        dialog.dismiss();

                    }
                });

但是這里我的問題是它不會占用對話框中的相應內容,每當我們單擊按鈕中的第一項時,它將在按鈕單擊的所有行中顯示內容。 對話框內容必須根據行進行更改。

您需要為您的textview創建簡單的類。 喜歡

   private class ViewHolder {
            TextView textview1;
            TextView textview2;
             Button button23;
        }

更新對話框,如...

public void showMyDialog(){

dialog=new Dialog(ExperiencesActivity.this);
ViewHolder viewholder;
                dialog.setContentView(R.layout.exp1);
                dialog.setCancelable(true);
                dialog.setTitle("My Experiences");

                ViewHolder.textview1 = (TextView)dialog.findViewById(R.id.tv11);
                ViewHolder.textview1.setText("Title:" + expname);
                ViewHolder.textview2 = (TextView)dialog.findViewById(R.id.tv22);
                ViewHolder.textview2.setText("Content:" + expcontent);
                ViewHolder.button23=(Button)dialog.findViewById(R.id.btnSubmit);
               ViewHolder.button23.setOnClickListener(new OnClickListener() {
                    @Override
                    public void onClick(View v) {

                        dialog.dismiss();

                    }
                });
 dialog.show();
}

並在按鈕的onclick上調用showMyDialog()方法。

 ImageButton button3 = (ImageButton) view.findViewById(R.id.bBlame);
                button3.setOnClickListener(new OnClickListener(){
                    @Override
                    public void onClick(View v){
                        //ADD STUFF HERE you know which row is clicked. and which button
                        showMyDialog();

                    }
                });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM