0

これが私がやりたいことです:

クリックする前のタスクのリスト

私はこのタスクのリストを持っています。アイテムの1つをクリックすると、これを表示します。

タスクをクリックした後

メニューバーが

findViewById(R.id.menubar);

誰かが私がどのコードをonItemClickListenerに入れなければならないか教えてもらえますか

lv.setOnItemClickListener(new OnItemClickListener() { 
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

注:メニューバーの表示は、GONEとして設定されています。

ありがとう!

4

3 に答える 3

0

私はついに答えを見つけました。どうやら、ビューをたくさんのタスクで埋めるとき、アダプターはレイアウトをロードするときにすべてを埋めるわけではないので、下にスクロールするたびに、リストビューにさらに多くのアイテムを配置します。

あなたがしなければならないことは、あなたが「ロードされた」フィールドを置くことを確認することです、そして、falseの場合、それはそのアイテムの下にメニューバーを表示しません、さもなければ、あなたがそのリストのアイテムの1つをクリックするとき、あなたが下にスクロールするとき、それらは同じ相対位置を持つため(最初の項目をクリックすると、位置= 0、下にスクロールすると、別の位置= 0になります)、メニューバーが両方の項目に表示されます。

それが役に立てば幸い ;)

于 2012-04-26T10:16:35.313 に答える
0

コードを見ないと少し難しいですが、論理的なアイデアをいくつか挙げることができます。

あなたの説明に基づいて、これらのクイックバーコントロールは各リストビューアイテムで非表示になっていると想定しているため、次のようになります。

写真 (可視)

アクション コントロール (非表示)

【項目終了】

プロジェクト (可視)

アクション コントロール (非表示)

...

OnItemClick メソッドは、2 番目の引数としてクリックされたビュー (アイテム: Fotos、Projectos など) を提供すると思います。それをリストビュー項目の作成に使用したレイアウトに戻すと、findViewByID を使用して、各リストビューにある非表示のコントロールにアクセスし、それらを表示できるようになります。

lv.setOnItemClickListener(new OnItemClickListener() {           
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) 
    { 
         //Assuming each item is a linear layout
         LinearLayout itemAsLL = (LinearLayout)view;

         //find the action bar controls
         LinearLayout actionControlsLayout = itemAsLL.findViewById(R.name.of.actioncontrols.id);

         //Make it visible
         actionControlsLayout.setVisibility(VIEW.Visible);
     }

別のアイテムがクリックされたときにこれらのコントロールを非表示にする方法を見つける必要がありますか? おそらく、ビュー(または adapterView 内の位置)をクラス変数として保存し、別のアイテムがクリックされたときに、そのビューに移動/そのビューを見つけて、コントロールを非表示にします。

于 2012-04-23T17:12:01.423 に答える
0

コードを見ないと正確な答えは出せません。ただし、最初にあなたが示したような「クイック アクション バー」を実装したいと思ったときは、次の例に従いました。

http://code.google.com/p/simple-quickactions/

そして、これにはいくつかのスタイリングが含まれています: https://github.com/lorensiuswlt/NewQuickAction3D

お役に立てれば....

于 2012-04-23T16:18:26.260 に答える