0

リストビューは、各行に 1 つのボタンと 1 つのテキストビューで構成され、10 行あります。onCreateメソッドからリストビューをロードするときに、リストビューから2行目のボタンアイテムのみを非表示にする必要があります。手動でボタンをクリックして非表示にする方法をコーディングしましたが、完全に機能しますが、リストビューの読み込み時に自動的に行う必要があります。

私のマニュアル方法。ボタンをクリックすると、非表示になります。

 public void HideButton(View v){
    LinearLayout llMain = (LinearLayout)v.getParent();
    TextView row=(TextView)llMain.getChildAt(0); 
    Button deletebtn = (Button)llMain.findViewById(R.id.deleteButton);
    deletebtn.setVisibility(v.INVISIBLE);
  }

以下同様に、onCreateからのリストビューの読み込み時にボタンを非表示にするようにコーディングしましたが、正しく機能しません。このコードを使用してボタンにアクセスできますが、非表示にはなりません。

private void ButtonClick() {
       View v;
       TextView row;
       ArrayList<String> mannschaftsnamen = new ArrayList<String>();
       TextView et;
       for (int i = 0; i < lv.getCount(); i++) {
       v = lv.getAdapter().getView(i, null, null);
       et = (TextView) v.findViewById(R.id.item1);
       String row_no=et.getText().toString();
       int idd = Integer.valueOf(row_no);
       if(idd == 2){
          // LinearLayout llMain = (LinearLayout)v.getParent();

           Button deletebtn = (Button)v.findViewById(R.id.deleteButton);
           deletebtn.setVisibility(v.INVISIBLE);


         }

     }
  }
4

1 に答える 1

0

おそらく、より良い解決策は、アダプターに渡すデータ配列から 2 番目の要素を削除してから、 を呼び出すことnotifyDataSetChanged()です。

于 2013-09-12T19:22:08.603 に答える