19135


onCreate内でEditTextが長押しされた際に予測変換機能EditText付きのダイアログを作成したいのですがエラーが出てしまいます。

[code]

    java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.AutoCompleteTextView.setAdapter(android.widget.ListAdapter)' on a null object reference
    
[/code]

ダイアログ内dialog_edittextでなくmainのAutoCompleteTextViewでは問題なく動きますので、恐らくR.id.dialog_edittextがうまく取得出来てないのだと思います。誰かわかる方教えて下さい。

* * *
[code]

     EditText editNaiyo = (EditText) findViewById(R.id.n_naiyo);
    
    
            //ボタンがロングタッチされたときの処理
            editNaiyo.setOnLongClickListener(new View.OnLongClickListener() {
                @Override
                public boolean onLongClick(View v) {
    
                    LayoutInflater factory = LayoutInflater.from(MainActivity.this);
                    final View inputView = factory.inflate(R.layout.input_dailog, null);
    
                    // ダイアログの作成(AlertDialog.Builder)
                    new AlertDialog.Builder(MainActivity.this)
                            .setIcon(android.R.drawable.ic_dialog_alert)
                            .setTitle("テスト")
                            .setView(inputView)
                            .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                                public void onClick(DialogInterface dialog, int whichButton) {
                                    
                                }
                            })
                            .setNegativeButton("Cancel",
                                    new DialogInterface.OnClickListener() {
                                        public void onClick(DialogInterface dialog,
                                                            int whichButton) {
                                    // キャンセル処理 
                                        }
                                    }).create().show();
    
                    //EditText edit = (EditText) inputView.findViewById(R.id.dialog_edittext);
                     helper = new DBOpenHelper(MainActivity.this);// DB作成
                    SQLiteDatabase database = helper.getWritableDatabase();
                    AutoCompleteTextView inputTextView = (AutoCompleteTextView) findViewById(R.id.dialog_edittext);
                    Cursor cursor = database.query(DB_TABLE, new String[]{"rowid as _id", "TOKNA"}, null,null , null, null, null);
                    CursorAdapter adapter2 = new SimpleCursorAdapter(MainActivity.this,
                            android.R.layout.simple_spinner_item,
                            cursor,
                            new String[]{"kco"},
                            new int[]{android.R.id.text1},
                            0);
    
                   // adapter.getCursorToStringConverter(new android.widget.SimpleCursorAdapter.CursorToStringConverter() {
                    //   @Override
                     //  public String convertToString(Cursor cursor) {
                      //     return cursor.getString(cursor.getColumnIndex("kname"));
                      //  }
                     //});
                    inputTextView.setAdapter(adapter);
                    return false;
                }
    
    
            });
    
[/code]

input_dailog.xml

[code]

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical">
        <TextView
            android:id="@+id/dialog_textview"
            android:layout_height="wrap_content"  android:layout_width="wrap_content"
            android:layout_marginLeft="10dip"     android:layout_marginRight="10dip"
            android:text="テスト"
            android:gravity="left"
            android:textAppearance="?android:attr/textAppearanceLarge" />
        <AutoCompleteTextView
            android:id="@+id/dialog_edittext"
            android:layout_height="wrap_content"  android:layout_width="match_parent"
            android:layout_marginLeft="10dip"     android:layout_marginRight="10dip"
            android:scrollHorizontally="true"
            android:autoText="false"
            android:capitalize="none"
            android:gravity="fill_horizontal"
            android:text="AutoCompleteTextView"
            android:textAppearance="?android:attr/textAppearanceLarge" />
    </LinearLayout>
    
[/code]


CC BY-SA 4.0
2015-11-20T07:59:39.250
19075
2021-03-07T05:21:35.480
2021-03-07T05:21:03.100
3060
13247
question
java android
androidでEditText長押しで予測変換機能のあるAutoCompleteTextView付きのダイアログを表示させたいがエラーになる


解決しました。以下のような記述に変更するとうまく動きました。

[code]

    AutoCompleteTextView inputTextView = (AutoCompleteTextView) inputView.findViewById(R.id.dialog_edittext);
    
[/code]


CC BY-SA 4.0
2015-11-21T14:36:10.627
19135
2021-03-07T05:21:35.480
2021-03-07T05:21:35.480
3060
13247
19075
answer