[英]How to get to know cell position in dynamic Table Layout in android
在這里,我使用動態表格布局,但無法獲取單元格位置。 我的問題是android動態表格布局中的“如何到達行和列的位置”。 請幫我。
謝謝。
for (int i = 1; i <= rows; i++) {
TableRow row = new TableRow(this);
row.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.WRAP_CONTENT));
// inner for loop
for (int j = 1; j <= cols; j++) {
TextView tv = new TextView(this);
tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
tv.setBackgroundResource(R.drawable.cell_shape);
tv.setPadding(5, 5, 5, 5);
tv.setId(j);
tv.setText("R " + i + ", C" + j);
//mOrangeToolTipView = mToolTipFrameLayout.showToolTipForView(toolTip, tv);
tv.setOnClickListener(new OnClickListener() {
@Override
public void onClick(final View v) {
Log.d("Row and Column position ", v.getTouchables()+"");
}
});
row.addView(tv);
}
table_layout.addView(row);
}
對您來說可能為時已晚,但是...要從哪里到達行和列的位置? 從內部for循環的內部開始,行位置是i ,列位置是j 。 在外面嘗試像
((TextView)((TableRow)tableLayout.getChildAt(row)).getChildAt(column)).setText("MyText");
如果要為不同的單元格設置不同的OnClickListener,嘗試從內部類(新View.OnClickListener(){...})訪問i或j ,則對您來說有個壞消息,這是不可能的。 但是您可以循環創建每個單元格,因此可以像
...
if (i == 1 && j == 1){
tv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// do what cell (1,1) have to do
}
});
} else {
tv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// do what other cells have to do
}
});
}
...
我希望它能對您或其他人有所幫助;)
陷入了同樣的問題...找到了一個對我有用的解決方案,但是.....它不適用於所有情況 。
更改此行: tv.setId(j);
至: tv.setId((i*100)+j);
運作方式的邏輯:
獲取行索引: row_index = id/100;
獲取列索引: column_index = id%100;
注意:它的工作原理是給i和j是2位數字。(猜想它是在表格布局中定位textview的索引,最大應在99以內)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.