2

onCreate メソッド内のスピナーリストビューを埋め込んでいます。クリック イベントでリスト アイテムにトーストメッセージを送信したいのですが 、ListView アイテムに onClick リスナーを設定できません。カスタムアダプターは使用していません。スピナーとリストビューの両方に同じタイプの単純なアダプターが使用されていると思われるため、コンパイル時にフラストレーションが発生します。

"lv.setOnItemClickListener(new AdapterView.OnItemClickListener"で得られたエラーに注目し続けます。

タイプ new AdapterView.OnItemClickListener(){} は、継承された抽象メソッド AdapterView.OnItemClickListener.onItemClick(AdapterView, View, int, long) を実装する必要があります。

シンプルなアダプターを使用し続けるリストビュー項目でそのクリックイベントを設定するにはどうすればよいですか? どういうわけか、リストビューアダプターの名前を「変更」する必要がありますか、それともどのように進めるか.. ?

疑似コード

// ...
import android.widget.AdapterView;
/* manually added */
import android.widget.AdapterView.OnItemClickListener;

public class MyActivity extends Activity {

onCreate(Bundle savedInstanceState){

// ... some code
        // Set Spinner listener
        mySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

            @Override
            public void onItemSelected(AdapterView<?> spinner, View v, int position, long id) {

// ... some code


                    lv.setOnItemClickListener(new AdapterView.OnItemClickListener()) {
                        public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
                                // When clicked, show a toast with the TextView text
                                Toast.makeText(getApplicationContext(), "some msg" , Toast.LENGTH_SHORT).show();
                            }
                        });

}

}
4

1 に答える 1

0

したがって、同じアクティビティにスピナーとリスト ビューがあります。スピナーの選択に基づいて、リストビューを更新します。ボタンイベントなどの他のイベントからも同じリストビューを更新します。コードの原則は、質問で説明されているとおりです。

この方法が完全に機能することを確認し、スピナー/リストビューの相互作用に関連する問題を解決しましたが、データを取得してリストにフィードする方法で問題を解決しました。

結果を少し説明すると、私のレイアウトはこれに似ていますが、スピナーにボタンが追加されており、両方ともリストビューの結果を駆動しています。

于 2012-09-09T17:21:48.090 に答える