我有一个TableLayout,我在其中动态添加行,首先为空,我想在用户点击它时在该行中加载xml。
我已将OnClick方法分配给该行,但我不知道如何在进入onclick方法时加载xml。
public void onClick(View v){
// CODE TO LOAD THE XML
Toast.makeText(getApplicationContext(), "This should appear", Toast.LENGTH_SHORT).show();
}
我尝试过使用inflate,但似乎我没有正确使用它,因为点击一行时应用程序崩溃了。
如何让行包含xml?
答案 0 :(得分:8)
首次添加到TableLayout时,首先为所有TableRow设置标记。因为你已经动态地加载了TableRow,我希望它来自膨胀,如下面的
TableRow inflateRow = (TableRow) View.inflate(Activity, R.layout.table_row, null);
//Main TableLayout
TableLayout tblAddLayout = (TableLayout) findViewById(R.id.tblAddLayout);
for (int i=0;i<10;i++){
inflate = (TableRow) View.inflate(myActivity, R.layout.table_row, null);
//set tag for each TableRow
inflate.setTag(i);
//add TableRows to TableLayout
tblAddLayout.addView(inflate);
//set click listener for all TableRows
inflateRow.setOnClickListener(this);
}
public void onClick(View v){
String strTag = v.getTag().toString();
// Find the corresponding TableRow from the Main TableLayout using the tag when you click.
TableRow tempTableRow = (TableRow)tblAddLayout.findViewWithTag(strTag);
//then add your layout in this TableRow tempTableRow.
}
在上面的onClick方法中,您可以使用标记加载xml文件。
答案 1 :(得分:0)
按ID TextView
查找TableRow
,然后将XML设置为TextView
。