【问题标题】:update dialog box's content when icon is click inside ListView在 ListView 中单击图标时更新对话框的内容
【发布时间】:2011-06-29 18:33:36
【问题描述】:

当单击ListView 中的图标时,我正在尝试打开一个对话框。该对话框是一个AlertDialog,其中包含很少的TextViews,它根据单击的列表项显示信息。每个列表项在单击时会在对话框中显示不同的信息。

问题是,当单击图标时,我正在调用showDialog(INFO_DIALOG_ENYTY);,并且对话框内的 TextView 仅在 onCreateDialog 内创建对话框时更新一次。

但我想在每次单击列表项图标时更新对话框内的 TextView 的内容。

或者如果其他人有另一个选项可以使用而不是对话框,那么请建议我的灵魂目的是在 ListView 中单击图标时显示信息

【问题讨论】:

    标签: android listview


    【解决方案1】:

    如果该实例不为空,则在单击事件时检查 alertbuilder 实例,然后将文本设置为 textview 并使用 showdialog(0) 方法显示对话框。如果实例不为空,则创建对话框

    查看示例示例

    import android.app.Activity;
    import android.app.AlertDialog;
    import android.app.AlertDialog.Builder;
    import android.content.DialogInterface;
    import android.os.Bundle;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.TextView;
    
    public class MainActivity extends Activity {
        int counter = 0;
    
        Builder myAlertDialog;
        View entryView;
        TextView dialogTextview;
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
    
            Button b = (Button) findViewById(R.id.button1);
            b.setOnClickListener(listener);
    
        }
    
        public OnClickListener listener = new OnClickListener() {
            @Override
            public void onClick(View arg0) {
    
                ++counter;
                startDialog("Clicked=" + counter);
    
            }
    
        };
    
        private void startDialog(String message) {
            LayoutInflater factory = LayoutInflater.from(this);
            entryView = factory.inflate(R.layout.mytest, null);
            dialogTextview = (TextView) entryView.findViewById(R.id.textview1);
            if (myAlertDialog == null) {
                myAlertDialog = new AlertDialog.Builder(this);
                myAlertDialog.setView(entryView);
    
                myAlertDialog.setMessage("Do you want to exit the application?");
                myAlertDialog.setPositiveButton("Yes",
                        new DialogInterface.OnClickListener() {
    
                            // do something when the button is clicked
                            public void onClick(DialogInterface arg0, int arg1) {
                                System.out.println("...yes button is clicked..");
                                arg0.dismiss();
    
                            }
                        });
    
                myAlertDialog.setNegativeButton("NO",
                        new DialogInterface.OnClickListener() {
    
                            // do something when the button is clicked
                            public void onClick(DialogInterface arg0, int arg1) {
                                System.out.println("...clicked no...");
                                arg0.dismiss();
                            }
                        });
                AlertDialog alert = myAlertDialog.create();
    
                alert.getWindow().setLayout(600, 400);
    
                myAlertDialog.show();
            } else {
                dialogTextview.setText(message);
                System.out.println("...settext in dialog...");
                myAlertDialog.setView(entryView);
                myAlertDialog.show();
            }
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-03
      • 1970-01-01
      • 2018-11-02
      • 1970-01-01
      相关资源
      最近更新 更多