Reputation: 1211
i have a problem... I have different textviews with a listener. Like these ones:
help_modul.setOnClickListener(this);
help_timetable.setOnClickListener(this);
help_credits.setOnClickListener(this);
help_todo.setOnClickListener(this);
Here is my listener:
@Override
public void onClick(View v) {
String temp= v.getId(); // DOESNT WORK
Toast.makeText(this, temp, Toast.LENGTH_LONG).show();
}
In my listener I want to differ between my textview.... For example Click on Textfield "a "do that, if a click on another textfield do another operation..
Have u any suggestions?
Upvotes: 1
Views: 1020
Reputation: 3460
In this statement String temp= v.getId(); // DOESNT WORK
you are getting the id of view which is of datatype long
and then assigning to the String
variable, which may be correct but it is bad approach.
Use this improved code instread:
@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*/
}
}
Upvotes: 0
Reputation: 3005
Use a switch case
@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;
}
}
Upvotes: 0
Reputation: 7631
Try something like this:
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.textview1:
doSomething1();
break;
case R.id.textview2
doSomething2();
break;
}
}
Upvotes: 5
Reputation: 11439
You could a) make InstanceListeners such as:
TextView(context).setOnClickListener(new OnClickListener() {
@Override public void onClick(View view) {
// ...
Log.d(TAG, "I'm doing stuff");
}
}
or you could b) check the instances of your 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");
}
}
Upvotes: 2