Android:OnClicklistener
我有个问题。。。我和一个听众有不同的文本视图。就像这些:Android:OnClicklistener,android,onclick,clicklistener,Android,Onclick,Clicklistener,我有个问题。。。我和一个听众有不同的文本视图。就像这些: help_modul.setOnClickListener(this); help_timetable.setOnClickListener(this); help_credits.setOnClickListener(this); help_todo.setOnClickListener(this); 这是我的听众: @Override public void onClick(View v) { S
help_modul.setOnClickListener(this);
help_timetable.setOnClickListener(this);
help_credits.setOnClickListener(this);
help_todo.setOnClickListener(this);
这是我的听众:
@Override
public void onClick(View v) {
String temp= v.getId(); // DOESNT WORK
Toast.makeText(this, temp, Toast.LENGTH_LONG).show();
}
在我的监听器中,我想在我的文本视图。。。。例如,单击文本字段“a”执行该操作,如果单击另一个文本字段,则执行另一个操作
你有什么建议吗?你可以
a) 制作InstanceListeners,例如:
TextView(context).setOnClickListener(new OnClickListener() {
@Override public void onClick(View view) {
// ...
Log.d(TAG, "I'm doing stuff");
}
}
或者你可以
b) 检查textview的实例:
@Override public void onClick(View view) {
if (view == mGirlTextView) {
// Do Stuff
Log.d(TAG, "I'm Forever alone");
} else if (view == mBoyTextView) {
// Do moar stuff
Log.d(TAG, "Let's grab a beer");
}
}
你可以
a) 制作InstanceListeners,例如:
TextView(context).setOnClickListener(new OnClickListener() {
@Override public void onClick(View view) {
// ...
Log.d(TAG, "I'm doing stuff");
}
}
或者你可以
b) 检查textview的实例:
@Override public void onClick(View view) {
if (view == mGirlTextView) {
// Do Stuff
Log.d(TAG, "I'm Forever alone");
} else if (view == mBoyTextView) {
// Do moar stuff
Log.d(TAG, "Let's grab a beer");
}
}
试着这样做:
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.textview1:
doSomething1();
break;
case R.id.textview2
doSomething2();
break;
}
}
试着这样做:
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.textview1:
doSomething1();
break;
case R.id.textview2
doSomething2();
break;
}
}
使用开关盒
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.help_modul:
// do code
break;
case R.id.help_timetable:
// do code
break;
case R.id.help_credits:
// do code
break;
case R.id.help_todo:
// do code
break;
}
}
使用开关盒
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.help_modul:
// do code
break;
case R.id.help_timetable:
// do code
break;
case R.id.help_credits:
// do code
break;
case R.id.help_todo:
// do code
break;
}
}
在此语句中,
String temp=v.getId();//不起作用
您正在获取数据类型为long
的视图id,然后将其分配给字符串
变量,这可能是正确的,但方法不好
在阅读时使用此改进的代码:
@Override
public void onClick(View v) {
if(v.getId() == help_modul.getId())
{
/*do some work on the click*/
}
else if(v.getId() == help_timetable.getId())
{
/*do some work on the click*/
}
else if(v.getId() == help_credits.getId())
{
/*do some work on the click*/
}
else if(v.getId() == help_todo.getId())
{
/*do some work on the click*/
}
}
在此语句中,
String temp=v.getId();//不起作用
您正在获取数据类型为long
的视图id,然后将其分配给字符串
变量,这可能是正确的,但方法不好
在阅读时使用此改进的代码:
@Override
public void onClick(View v) {
if(v.getId() == help_modul.getId())
{
/*do some work on the click*/
}
else if(v.getId() == help_timetable.getId())
{
/*do some work on the click*/
}
else if(v.getId() == help_credits.getId())
{
/*do some work on the click*/
}
else if(v.getId() == help_todo.getId())
{
/*do some work on the click*/
}
}
@user1197351高兴:)如果这是你正在寻找的,如果你能将答案标记为正确,那就太好了:)@user1197351高兴:)如果这是你正在寻找的,如果你能将答案标记为正确,那就太好了:)