我写过这样的东西......
TableRow tr1;
TableRow tr2;
TextView txt9;
...
TableLayout tl = (TableLayout)findViewById(R.id.myTableLayout);
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth();
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(width, LayoutParams.FILL_PARENT);
for (int i = 0; i < strarr.length-1; i++)
{
strinarr = fun1.split(strarr[i].trim(),"^");
tr1 = (TableRow) new TableRow(this);
txt1=new TextView(this);
txt9.setText(strinarr[0]);
txt9.setBackgroundColor(intblue);
txt9.setTextColor(intwhite);
txt9.setClickable(true);
txt9.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
Log.i("pagename",strpagename);
String currenttext = txt9.getText().toString());
}
}
});
tr1.addView(txt9);
tl.addView(tr1,new TableLayout.LayoutParams(layoutParams));
}
我能够在点击上获取文字,但愚蠢的是我在所有textview点击事件的表格中获得最后textview的文本...如果有人可以告诉我如何在焦点或触摸上捕获textview的文本这真的很有帮助...
答案 0 :(得分:12)
将String currenttext = txt9.getText().toString());
更改为String currenttext = ((TextView)v).getText().toString());
答案 1 :(得分:0)
您可能应该在表格中维护一个ID列表以及相应文本列表。当用户点击具有给定ID的小部件时,只需在文本列表中查找文本并进行设置即可。
答案 2 :(得分:0)
ArrayList qty = new ArrayList();
for(int i = 1; i <= 10; i++)
{
qty.add(i);
}
for(int i = 0; i < 5; i++)
{
TableRow tr = new TableRow(this);
Spinner tvQtySpinner = new Spinner(this);
tvQtySpinner.setOnItemSelectedListener(this);
ArrayAdapter<String> aa =
new ArrayAdapter<String> this, android.R.layout.simple_spinner_item, qty);
aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
tvQtySpinner.setAdapter(aa);
tr.addView(tvQtySpinner);
TextView tvRate = new TextView(this);
tvRate.setText(value.getPrice().toString());
tvRate.setTextColor(Color.YELLOW);
tr.addView(tvRate);
}
public void onItemSelected(AdapterView<?> parent, View view, int pos,long id)
{
Integer value = (Integer) parent.getItemAtPosition(pos);
Float result = value*50;
tvRate.setText(String.valueOf(result));
}
这里我有5行,每行有5个动态微调器和文本视图。我从微调器获取所选值并进行计算,并尝试在特定行TextView中设置该计算结果。但是当我在TextView中设置计算值时,它将在最后一行TextView上设置。