首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用AlertDialog ()方法时,Android show不显示

调用AlertDialog ()方法时,Android show不显示
EN

Stack Overflow用户
提问于 2015-11-04 11:46:11
回答 4查看 4.7K关注 0票数 1

我得到了下面的代码,我试图在一个半透明的活动中显示一个简单的选项列表。但是,该对话框根本没有显示,也没有引发任何异常。有什么想法吗?

代码语言:javascript
复制
public class SendToActivity extends AppCompatActivity {
    List<String[]> players;
    String[] chosen_player;

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

        AlertDialog.Builder builder = new AlertDialog.Builder(SendToActivity.this);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);
        for(String[] player: players){
            adapter.add(player[0]);
        }
        builder.setTitle("Which Player?");
        builder.setAdapter(adapter, new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int item) {
                chosen_player = players.get(item);
            }
        });
        AlertDialog dialog = builder.create();
        dialog.show();
EN

回答 4

Stack Overflow用户

发布于 2015-11-04 12:35:16

尝尝这个,

代码语言:javascript
复制
AlertDialog.Builder alertBuilder; // Call this variable globally.

alertBuilder = new AlertDialog.Builder(SignUp.this);

            alertBuilder.setTitle(GlobalFields.DIALOG_TITLE);

            // Set an EditText view to get user input
            final EditText input = new EditText(SignUp.this);
            input.setHint("Enter Code");
            alertBuilder.setView(input);

            alertBuilder.setCancelable(false)
                    .setMessage("Please enter verification code from email")
                    .setPositiveButton("Ok", null);

            alertBuilder.setNegativeButton("Cancel",
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog,
                                int whichButton) {

                            dialog.cancel();
                        }
                    });

            // create alert dialog
            final AlertDialog alertDialog = alertBuilder.create();
            alertDialog.setOnShowListener(new OnShowListener() {

                @Override
                public void onShow(DialogInterface arg0) {
                    // TODO Auto-generated method stub
                    Button btn = alertDialog
                            .getButton(AlertDialog.BUTTON_POSITIVE);

                    btn.setOnClickListener(new OnClickListener() {

                        @Override
                        public void onClick(View arg0) {
                            // TODO Auto-generated method stub

                            try {
                                InputMethodManager inputManager = (InputMethodManager) getApplicationContext()
                                        .getSystemService(
                                                Context.INPUT_METHOD_SERVICE);
                                inputManager.hideSoftInputFromWindow(
                                        input.getWindowToken(), 0);

                                // do your stuff
                            } catch (Exception e) {
                                e.printStackTrace();
                            }
                        }
                    });
                }
            });

            // show it
            alertDialog.show();
票数 1
EN

Stack Overflow用户

发布于 2015-11-04 12:35:01

你可以使用下面的代码在对话框中显示列表。

代码语言:javascript
复制
    final Dialog dialog = new Dialog(mContext);
    dialog.setContentView(R.layout.dialog_list);
    dialog.setTitle("Select Continent");
    final ListView listView = (ListView) dialog.findViewById(R.id.list);

    dialog.show();
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(mContext,
            android.R.layout.simple_list_item_1, android.R.id.text1, "Pass your arrayList");
    listView.setAdapter(adapter);
    listView.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
            int itemPosition = position;


            strContinent = (String) YourArrayList.get(position);

            dialog.cancel();

        }

    });

dialog_list.xml:

代码语言:javascript
复制
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:layout_marginTop="5dp"
        android:orientation="vertical" >

        <ListView
             android:id="@+id/list"
             android:layout_width="match_parent"
             android:layout_height="wrap_content" >

         </ListView>

    </LinearLayout>

快乐的编码..

票数 0
EN

Stack Overflow用户

发布于 2015-11-04 12:38:38

点击你的项目,试试下面的代码:

代码语言:javascript
复制
AlertDialog.Builder dialog = new AlertDialog.Builder(context);
            dialog.setMessage(context.getResources().getString(R.string.your_message));
            dialog.setPositiveButton(context.getResources().getString(R.string.positive_button_string), new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface paramDialogInterface, int paramInt) {
                    //your code
                }
            });
            dialog.setNegativeButton(context.getString(R.string.cancel), new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface paramDialogInterface, int paramInt) {
                   //your code when cancel is clicked
                }
            });
            dialog.show();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33513317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档