Java – create a switch case onclicklistener for textview
I just started programming in Java and had some trouble implementing the onclicklistener switch case for clickable textview I've tried to make a switch case for menu items, but I obviously can't understand it enough to constitute a more general case
This is an important part of my code for it
public class MyActivity extends Activity implements SensorEventListener { TextView tv,tv1,tv2,tv3; @Override public void onCreate(Bundle savedInstanceState) { //get textviews tv = (TextView) findViewById(R.id.xval); tv1 = (TextView) findViewById(R.id.yval); tv2 = (TextView) findViewById(R.id.zval); tv3 = (TextView) findViewById(R.id.scalar);
Then I set up a separate click listener for each textview, such as
tv1.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // Do things } } });
But I'm trying to set it up, so I have a combined onclicklistener, such as:
@Override public boolean onClickListener (View v) { switch (tv.findViewById()) { case tv: //Do things return true; case tv1: //Do things return true; case tv2: //Do things return true; case tv3: //Do things return true; }}
I know the code is very wrong, but I can't seem to get around it I have assigned my findviewbyid, so I'm not sure what else can be put into the switch!
thank you!
Solution
I will provide an alternative answer First, you must create an onclicklistener that will receive your onclick events:
OnClickListener listener = new OnClickListener() { @Override public void onClick(View v) { switch (v.getId()) { case R.id.xval: //code break; case R.id.yval: //code break; case R.id.zval: //code break; case R.id.scalar: //code break; default: break; } } };
You must then associate the listener with each textview you own:
tv.setOnClickListener(listener); tv1.setOnClickListener(listener); tv2.setOnClickListener(listener); tv3.setOnClickListener(listener);
After clicking one of the textviews, the onclicklistener onclick() callback is called, which checks the textview ID you clicked and runs the code accordingly, depending on the case