0

Toast.makeText(this,((TextView) view).getText().toString(), 2000).show();次のコードは正しく実行できますが、理由がわからないを使用するとエラーが発生します。を使用しようとしましたがToast.makeText(this.parent,((TextView) view).getText().toString(), 2000).show();、エラーも発生します。

private void InitControl() {
    ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_item,
            nameList.toArray(new String[nameList.size()]));
    adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinnerFolder.setAdapter(adapter1);

    spinnerFolder.setOnItemSelectedListener(new OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view,
                int position, long id) {
            Toast.makeText(MainActivity.this,
                    ((TextView) view).getText().toString(), 2000).show();

        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {
            // TODO Auto-generated method stub

        }
});
4

5 に答える 5

0

使ってみて、

Toast.makeText(getApplicationContext(),parent.getItemAtPosition(position).toString(), Toast.LENGTH_LONG).show();
于 2013-05-16T08:21:52.797 に答える
0

無効なコンテキスト内で実行するためMainActicity.this、トーストの表示には無効です。

のようにリスナーの外でコンテキストを定義します

final Context context = this; //'this' should be your activity

リスナー内でトーストを次のように呼び出します

 Toast.makeText(context,
                    ((TextView) view).getText().toString(), 2000).show();

さらに、これを行う最も適切な方法は、 を実装する独自のクラスをOnItemClickListener定義し、Contextメンバー変数を定義してコンストラクターに設定することです。

于 2013-05-16T08:22:52.270 に答える
0

以下を試してください:

public void onItemSelected(AdapterView<?> parent,
        View view, int pos, long id) {
Toast.makeText(getApplicationContext(), lv.getAdapter().getItem(pos).toString(),  2000).show();

ハッピーコーディング

于 2013-05-16T08:25:05.473 に答える