2011-01-26 9 views
3

にOnItemClickにするsetSelectedは私がリストビューでOnItemClickイベントで選択した項目を設定しようとしていますし、それだけでアイテムが選択されたままにしないでしょう。私は間違って何をしていますか?アンドロイド - のListView

lView.setOnItemClickListener(new OnItemClickListener() 
    { 
    @Override 
    public void onItemClick(@SuppressWarnings("rawtypes") AdapterView parent, View clickedview, int position, long id) 
    { 
    clickedview.setSelected(true); 
     mItemsAdapter.select(position); 
    } 
    }); 

いくつかのこと:
1.私は、リストビューで選択し、複数の実装しようとしています。
2. ActivityはBaseActivityカスタムクラスから既に拡張されているため、ListActivityから拡張することはできません。
3. mItemsAdapterは、BaseAdapterを拡張するカスタムItemsAdapterアダプタです。
4.チェックボックスは必要ありません。選択した行が正常に表示されていることを確認するだけです。
5. ItemsAdapterは、getView()をオーバーライドし、xmlを拡張して行のレイアウトを設定します。

答えて

0

私は現在、時間がありません。だから私は今日、後でもう一度見てみましょう。 は、とにかく、私は同じで苦しんでいた、私の以前の質問を見てみましょう:

をあなたのためのソリューションが存在していない場合には(私はそれが最初のものだと思います)、あなたを助けるために、より多くのコードが必要になります。

これは少し役に立ちます。

+0

私は最初の投稿を参照してください少し異なるコードがあり、私は項目ジャンプと同じ問題に遭遇した。それは何ですか?私は今方法を試してみるつもりです。 – dropsOfJupiter

+0

@dropsOfJupiter問題がある場合に備えて、試してみてください! – Beasly

+0

@dropsOfJupiter "問題"は、リストからスクロールされた各行(ビュー)が、代わりに表示される行に対して再利用されることです。これは処理されなければならず、新しいビュー(行)の参照を更新する必要があります。なんらかの理由で、通常の 'onClick()'メソッドはそれ以上動作しません。 – Beasly

0

組み込み機能を使用して選択することはあまりありませんでした。

私はあなたが私は推測しています独自のカスタムアダプタは、行としてご膨らまカスタムビューを意味してい参照してください。あなたの行が何かを持っている場合、私はあなたが正しくsetSelectionsを使用することができるとは思わないchecktextview。

私は自分のモデルと機能を使ってこの問題を解決しました。リストの各項目には、選択されているかどうかを判断するためのデータがあります。私はその配列を反復することができますが、値を変更してアダプター(getViewを使用し、チェックを描くために私の選択モデルに対してチェックされた)でnotifydatasetchangedを呼び出すことで、UIを使用して選択を切り替えたり、UIを更新したりできます。

+0

ありがとうございます、私はどこかでcheckedtextview実装を見てきましたが、私はいくつかのコードが必要ですが、それを試してみましょう。 OnTouchEventでこれを行うこともできますが、それはちょうど過度のようです。非常にシンプルなものはありませんか? :) BTW checkedtextviewは、コントロールまたはXMLファイルですか?私は自分自身のxmlファイルを持っていて、そこに4から6のコントロールが入っていて、オブジェクトに戻ってくるものに応じて動的にオン/オフが切り替わります。 TextViewだけではありません。物事の多くはアダプタで行われますgetView() – dropsOfJupiter

5

私は長い間、クリックしたときに選択として設定するリストビューの項目を取得するために管理することができます:

@Override 
public boolean onItemLongClick(AdapterView<?> parent, View view, 
     int position, long id) { 
    parent.requestFocusFromTouch(); // IMPORTANT! 
    parent.setSelection(position); 
    return true; 
} 

私はrequestFocusFromTouch()呼ばれた後にのみ働きました。

+0

と 'requestFocusFromTouch()' – Lal

関連する問題