ちょっと私のコードでは、私が呼び出すメソッドによって動的に入力されているテーブルがあります。追加されたときのテーブル行には、クリックされたときに特定の行ごとに表示したい非表示のビューがあり、他のすべての行はここに非表示のままにしておきたいのは私のコードです
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());
}
このメソッドを使用して、私はそれを呼び出すたびに新しい行を作成することができます. クリックした行に表示し、残りはすべて非表示のままにし、別の行をクリックすると表示され、残りはすべて非表示のままにしたい