通过这种方式,我展示了来自DB的ID。
TextView setNote = (TextView) findViewById(R.id.idNotes);
setNote.setText(""); //empty current text
//DB connection
DatabaseHandler db = new DatabaseHandler(this);
List<Contact> contacts = db.getAll();
for (Contact cn : contacts)
{
Integer id = cn.getID();
setNote.append(id.toString()+"\n");
}
RESULT
12
35
42
现在我想让这些ID可点击,以便当用户点击每个ID时,它会打开一个与此ID对应的单独活动。我怎么能这样做?
答案 0 :(得分:0)
您需要使用onClickListener(),http://developer.android.com/reference/android/view/View.OnClickListener.html
如果您希望每个ID触发不同的操作,则需要使用自己的相关操作在自己的视图中。您不能对视图中的不同文本执行不同的操作。
答案 1 :(得分:0)
setNote.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent i=new Intent(MainActivity.this,newactivity.class);
startActivity(i);
}
});
答案 2 :(得分:0)
使用方法TextView.setOnClickListener(this)
并在您的活动(类)中实施OnClickListener
。
答案 3 :(得分:0)
TextView setNote = (TextView) findViewById(R.id.idNotes);
setNote.setOnClickListener(this);
@Override
public void onClick(View v) {
new Thread(new Runnable() {
public void run() {
Intent monIntent = new Intent(this,CibleClass.class);
startActivity(monIntent);
}
}).start();
}
答案 4 :(得分:0)
setNote.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i=new Intent(this,new_activity_name_you_want_to_start.class);
startActivity(i);
}
});
调用类而不是活动,只需在
中创建该类的对象public void click(View v)
让你的代码成为你的代码
答案 5 :(得分:0)
如果您想使整个TextView可单击,那么您可以像其他人提到的那样添加onClickListener。
但是,如果你想让每个你可以单独点击的ID(即每个人都去其他地方),你就必须创建你自己的Span
类。
这是一个示例实现。首先从ClickableSpan
:
static class MyClickableSpan extends ClickableSpan {
OnClickListener mListener;
public MyClickableSpan(OnClickListener listener) {
mListener = listener;
}
@Override
public void onClick(View widget) {
mListener.onClick(widget);
}
}
接下来,您要为每个打印的ID创建SpannableString
:
for (Contact cn : contacts) {
String id = cn.getID().toString();
SpannableString mySpan = new SpannableString(id+"\n")
mySpan.setSpan(new MyClickableSpan(new OnClickListener() {
public void onClick(View v) {
//Do whatever you want when clicked here! <----
}
}), 0, id.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
setNote.append(mySpan);
}
最后,要启用点击,您需要将LinkMovementMethod
添加到TextView
,如下所示:
// Put this at the end after finishing your for-loop
setNote.setMovementMethod(LinkMovementMethod.getInstance());
如果您想要的话,这将允许您使每个ID可点击,而每个ID都可以单独Activity
答案 6 :(得分:0)
SetOnclickListner
。用于点击任意View