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高兴:)如果这是你正在寻找的,如果你能将答案标记为正确,那就太好了:)