Logcat说:“指定的孩子已经有一个父母。您必须先在孩子的父母上调用removeView()。” 在我的第二个警报对话框中

特拉贝菲

就像我在标题中所说的,我有两个关于用户交互的警报对话框。我的菜单有4个选项:“设置”,“积分”,“促销代码”和“退出一个”,但是当我单击“促销代码”时,出现问题中提到的错误。这是我的代码:

switch ((int) mMergeAdapter.getItemId(position)) {
                    case 0:
                        Intent intent2 = new Intent(Browser.this,
                                SettingsActivity.class);
                        startActivity(intent2);
                        break;
                    case 1:
                        AlertDialog.Builder builder = new AlertDialog.Builder(Browser.this);
                        builder.setTitle("Credits");
                        builder.setMessage("Code\n\nTraabefi\n\nDesign\n\nSamuel 'Samael' Chmura");
                        builder.setIcon(R.drawable.holo_dark_action_info);
                        builder.setPositiveButton("OK", null);
                        AlertDialog dialog = builder.create();
                        dialog.show();
                        TextView txt = (TextView)dialog.findViewById(android.R.id.message);
                        txt.setGravity(Gravity.CENTER);
                        break;
                    case 2:
                        AlertDialog.Builder alert = new AlertDialog.Builder(Browser.this);
                        alert.setTitle("Enter your promocode.");
                        final EditText input = (EditText) findViewById(android.R.id.edit);
                        alert.setView(input);
                        alert.setPositiveButton("OK", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int whichButton) {
                        if (input.getText().toString()=="abcd"){
                                 isPremium = true;
                        }
                        else {
                                 isPremium = false;
                        }}});
                        alert.show();
                        break;
                    case 3:
                        finish();
                }
黑带

导致错误的行是:

 final EditText input = (EditText) findViewById(android.R.id.edit);
 alert.setView(input);

android.R.id.edit是片段的一部分,并且由于错误而指出,该视图已经具有父视图。为了解决您的问题,您可以定义xml,使用充气器检索视图对象并调用setView,并将此作为参数提供。

编辑:

在res / layout文件夹中创建一个xml文件。my_edit_text.xml用内容称呼它

<?xml version="1.0" encoding="utf-8"?>
   <EditText xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/myid"
    android:layout_width="match_parent"  
    android:layout_height="wrap_content" />

并替换

final EditText input = (EditText) findViewById(android.R.id.edit);
alert.setView(input);

 final View view = LayoutInflater.from(this).inflate(R.layout.my_edit_text, null); 
 alert.setView(view);
 final EditText input = (EditText) view.findViewById(R.id.myid);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档