我有一个TableRow,我在点击时打开一个新的Activity:
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns = "1"
android:shrinkColumns = "1">
<TableRow
android:id="@+id/tableRow1"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:gravity="center_vertical">
//content
</TableRow>
TableRow row1 = (TableRow) item.findViewById(R.id.tableRow1);
row1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Log.i("click detected", "yes");
Bundle bundle = new Bundle();
bundle.putString("noticeID",String.valueOf(data[pos].getID()));
bundle.putString("title",data[pos].getTitle());
Intent newIntent = new Intent(activity, ReadNotice.class);
newIntent.putExtras(bundle);
}
});
日志已写入,但新活动未打开,我是否遗漏了什么?
答案 0 :(得分:1)
你必须开始活动.. startActivity(newIntent);
答案 1 :(得分:0)
/************ if table row is dynamic then this method else method 2 is perfect************/
//if we want to applay listener on dynamic tablerow then use this
//sure that perfect
TablRowe tr = new TableRow(this);
tr.setClickable(true);
tr.setId(100);// if in loop then add 1 counter with 100 like (100+counter) at end count++ it
tr.setOnClickListener(this);
@Override
public void onClick(View v)
{
switch (v.getId())
{
case 100:
Toast.makeText(getApplicationContext(), "100", Toast.LENGTH_SHORT).show();
break;
case 101:
Toast.makeText(getApplicationContext(), "101", Toast.LENGTH_SHORT).show();
break;
}
/************************** for simple like this ************************/
TableRow row1 = (TableRow)findViewById(R.id.row1);
row1.setonClickListener(this);
public void onClick(View v)
{
switch (v.getId())
{
case R.id.row1:
// do work
break;
}
}