0

ちょっと私のコードでは、私が呼び出すメソッドによって動的に入力されているテーブルがあります。追加されたときのテーブル行には、クリックされたときに特定の行ごとに表示したい非表示のビューがあり、他のすべての行はここに非表示のままにしておきたいのは私のコードです

public void createTable(String itemName,String itemQuantity,String itemPrice,String itemAmount){
    final TableRow tr1 = new TableRow(getApplicationContext());
    tr1.setId(id);
    tr1.setClickable(true);

    tr1.setOnClickListener(new View.OnClickListener(){

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
        for(int i = 0;i<lytTableData.getChildCount();i++){
        tr1.getChildAt(4).setVisibility(View.INVISIBLE);
        }
        tr1.getChildAt(4).setVisibility(View.VISIBLE);
        }

    });

    tr1.setLayoutParams(new LayoutParams( LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT));
    EditText textViewItemQuantity;
    TextView textViewItemName,textViewItemPrice,textViewItemAmount;

    textViewItemName= new TextView(this);textViewItemQuantity= new EditText(this);textViewItemPrice= new TextView(this);textViewItemAmount= new TextView(this);
    iv2 = new ImageView(this);
    textViewItemName.setWidth(500);textViewItemQuantity.setWidth(100);textViewItemPrice.setWidth(100);textViewItemAmount.setWidth(100);
    textViewItemName.setLayoutParams(new TableRow.LayoutParams((int) getResources().getDimension(R.dimen.textsize), LayoutParams.WRAP_CONTENT, 6f));
    textViewItemQuantity.setLayoutParams(new TableRow.LayoutParams((int) getResources().getDimension(R.dimen.textsize2), LayoutParams.WRAP_CONTENT, 1f));
    textViewItemPrice.setLayoutParams(new TableRow.LayoutParams((int) getResources().getDimension(R.dimen.textsize2), LayoutParams.WRAP_CONTENT, 1f));
    textViewItemAmount.setLayoutParams(new TableRow.LayoutParams((int) getResources().getDimension(R.dimen.textsize2), LayoutParams.WRAP_CONTENT, 1f));
    textViewItemName.setText(itemName);textViewItemQuantity.setText(itemQuantity);textViewItemPrice.setText(itemPrice);textViewItemAmount.setText(itemAmount);  
    textViewItemQuantity.setTextAppearance(getApplicationContext(), android.R.style.TextAppearance_Large); textViewItemPrice.setTextAppearance(getApplicationContext(), android.R.style.TextAppearance_Large);
    textViewItemName.setTextAppearance(getApplicationContext(), android.R.style.TextAppearance_Large); textViewItemAmount.setTextAppearance(getApplicationContext(), android.R.style.TextAppearance_Large);
    textViewItemName.setTextColor(0xFF121212);textViewItemQuantity.setTextColor(0xFF121212);textViewItemPrice.setTextColor(0xFF121212);textViewItemAmount.setTextColor(0xFF121212);
    textViewItemName.setPadding(0, 15, 5, 0);textViewItemQuantity.setPadding(0, 15, 5, 0);textViewItemPrice.setPadding(0, 15, 5, 0);textViewItemAmount.setPadding(0, 15, 5, 0);
    textViewItemQuantity.setBackgroundColor(android.R.color.transparent);
    iv2.setLayoutParams(new TableRow.LayoutParams((int) LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 1f));
    iv2.setImageResource(R.drawable.delete);
    iv2.setVisibility(View.INVISIBLE);
    textViewItemQuantity.setOnClickListener(editTextRows);
    tr1.addView(textViewItemName);tr1.addView(textViewItemQuantity);tr1.addView(textViewItemPrice);tr1.addView(textViewItemAmount);tr1.addView(iv2);
    lytTableData.addView(tr1, new TableLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
    Double intItemAmount = Double.parseDouble(itemAmount);
    intTotalAmount = intTotalAmount + intItemAmount;
    intTotalAmount2 = intTotalAmount2 + intItemAmount;
    txtTotal.setText(String.valueOf(intTotalAmount));
    //txtDiscount.setText("0");
    txtAmount.setText(String.valueOf(intTotalAmount));
    id = id + 1;
        System.out.println(tr1.getId());
}

このメソッドを使用して、私はそれを呼び出すたびに新しい行を作成することができます. クリックした行に表示し、残りはすべて非表示のままにし、別の行をクリックすると表示され、残りはすべて非表示のままにしたい

4

2 に答える 2

0

これを行うには、リスト ビューの行レイアウト ファイルで動的レイアウト (クリック時に表示する) を定義し、デフォルトで非表示/非表示にして、リスト ビューの onItemClickListener イベントでクリックされた行に対して表示としてマークします。これがお役に立てば幸いです。

ベース アダプタを使用している場合は、この問題を解決することをお勧めします。

于 2013-09-30T12:40:02.950 に答える