1

カスタムAlertDialog.Builderがありますが、EditTextにアクセスできませんでした。

これは私のデフォルトクラスです。

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

        LayoutInflater Inflater = this.getLayoutInflater();

        View AddCategory = Inflater.inflate(R.layout.category_new, null);

        final EditText etCategoryName = (EditText) AddCategory.findViewById(R.id.btnAddCategory);

        Builder.setView(AddCategory)
        .setTitle("Add Category")
        .setPositiveButton("ADD", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                Time Today = new Time(Time.getCurrentTimezone());
                Today.setToNow();

                //This code has error !...
                String CategoryName = etCategoryName.getText().toString();
            }
        })
        .setNegativeButton("CANCEL", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                dialog.cancel();
            }
        }); 

        Builder.show();

この文字列CategoryName=etCategoryName.getText()。toString();

これは私のCostumAlertDialogレイアウトです。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="60dp" >

<TextView
    android:id="@+id/tvAddCategoryName"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginLeft="10dp"
    android:layout_marginTop="15dp"
    android:text="@string/AddCategoryName"
    android:textColor="@color/White"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<EditText
    android:id="@+id/etAddCategoryName"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/tvAddCategoryName"
    android:layout_alignBottom="@+id/tvAddCategoryName"
    android:layout_toRightOf="@+id/tvAddCategoryName"
    android:layout_marginLeft="20dp"
    android:hint="@string/CategoryName"
    android:ems="10" >

    <requestFocus />
</EditText>

私を助けてください ...

4

3 に答える 3

2

これを試して。

final EditText etCategoryName = (EditText) AddCategory.findViewById(R.id.etAddCategoryName);

xmlファイルではeditTextidがetAddCategoryNameあり、javaファイルでは別の名前(btnAddCategory)を初期化します。

に変更btnAddCategoryしてくださいetAddCategoryName

于 2012-10-29T12:43:18.750 に答える
1

edittextidの代わりにボタンIDを渡したために問題が発生しました

以下のコード行を書いてください

final EditText etCategoryName = (EditText) AddCategory.findViewById(R.id.etAddCategoryName);

それ以外の

final EditText etCategoryName = (EditText) AddCategory.findViewById(R.id.btnAddCategory);
于 2012-10-29T12:57:03.003 に答える
0

EditText IDの入力を間違えたように思われる場合は、R.id.btnAddCategoryを入力し、R.id.etAddCategoryNameである必要があるようです。

于 2012-10-29T12:46:25.667 に答える