【发布时间】:2013-06-19 11:10:41
【问题描述】:
我的 android 应用程序正在填充从 sqlite 数据库以编程方式创建的表格布局。表格布局的最后一列有两个按钮。这两个按钮通过线性布局分配到一列。
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
35, 35);
params.setMargins(10, 0, 10, 0);
seventhCol1=new Button(this);
seventhCol1.setText("A");
seventhCol1.setLayoutParams(params);
//seventhCol1.setLayoutParams(new LayoutParams(30, 30));
seventhCol1.setId(71);
seventhCol1.setOnClickListener(mListener);
seventhCol2=new Button(this);
seventhCol2.setText("C");
seventhCol2.setLayoutParams(params);
seventhCol2.setId(72);
seventhCol2.setOnClickListener(nListener);
btn_linear=new LinearLayout(this);
btn_linear.setOrientation(LinearLayout.HORIZONTAL);
btn_linear.addView(seventhCol1);
btn_linear.addView(seventhCol2);
btn_linear.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));
btn_linear.setGravity(Gravity.CENTER);
tr.addView(btn_linear);
单击按钮seventhCol1 我想从单击该按钮的特定行中获取数据...我该怎么做????
我试过用这种方法:
tr.setOnClickListener(rowclickListner);
private OnClickListener rowclickListner=new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
TableLayout tl=(TableLayout) v.getParent();
/*TableRow tr=(TableRow) tl.getParent();*/
TableRow tr=(TableRow) tl.getParent();
TextView tv_mobile=(TextView)tr.getChildAt(2);
String mobile=tv_mobile.getText().toString();
Toast.makeText(LeadManagement.this, mobile, Toast.LENGTH_LONG).show();
/*ArrayList<String> leaddetails=mDbHelper.getTableDetails("lead_table", mobile);
prefEditor.putBoolean("leadbundle", true);
prefEditor.commit();
startActivity(new Intent(LeadManagement.this,CreateLead.class).putExtra("leadlist", leaddetails));*/
}
};
但它显示错误!我该怎么做?
【问题讨论】:
-
你遇到了什么错误?
-
@7bluephoenix 数据来自数据库...行是动态创建的...我应该如何使用 xml 来设计它?
-
@shivani 为什么不使用
ListView而不是表格视图?因为如果数据库返回的值因查询而异,那么最好使用ListView。 -
@7bluephoenix listview 在我的情况下是不可能的..我正在显示数据库中的七列..它必须在表格布局中
-
@Segi 我收到一个错误,例如 TableLayout 无法转换为表格行