0

TabActivity 内に ListView と ExpandableListView があります。ListView の setOnItemClickListener をオーバーライドしました。2 つのタブがあり、1 つは ListView を使用し、もう 1 つは ExpandableListView を使用します。何らかの理由で、最初の ListView の項目をクリックできません。タブを ExpandableListView に変更してから最初のタブに戻ると、通常どおりアイテムをクリックできるようになります。なぜこれが起こっているのかについてのアイデア。何か奇妙なフォーカスが起こっていますか?

私はこれを私のコードの一部として持っています:

public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.listview);

    listView = (ListView) findViewById(R.id.listview);

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> av, View v, int pos, long id) {
                    onListItemClick(pos, id);
                    // return false;
                }
            });
}
4

2 に答える 2

1

私は今同じ問題を抱えています。解決策が見つかったら投稿します。

私が探している解決策ではありません...しかし、暫定的に機能したのは次のとおりです。

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    //lv is a reference to my ListView.
    lv.setSelection(position);

    return convertView;
}

これは理想的な解決策ではないことに注意してください.Androidバージョン> 1.5で一貫して動作するように見えるだけです. (それは私がテストしたものです)。

ここでの追加の注意として、onItemClickListener も使用しています。これは通常、エミュレータのトラックボールまたは矢印キーの使用にのみ応答します。これは、onClick イベントを処理しない場合に発生する可能性があります。私は典型的な

于 2010-11-19T17:47:06.097 に答える
0

私はちょうど同じ問題を抱えていました。TabActivity によってディスパッチされるいくつかの ListViews。適切な を設定できなかったので、アダプターに「手動で」OnItemClickListenerを に付けました。各セルに OnClickListener をアタッチするだけです。OnClickListenerconvertView

ちょうどこのような :

convertView.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        // What you want to do with this "item click"
        // make an Intent to start something else or whatever
    }
});

もちろん、これは Adapter メソッドで行います (たとえば、convertView を返す前に):

public View getView(int position, View convertView, ViewGroup parent)

私の場合はうまくいきましたので、お役に立てば幸いです。

幸運を

于 2011-01-25T01:10:56.820 に答える