I'm trying to make an app that display a text for each image, I have imported four images and four text views , but when i press on any of the image it is display the same text. and display the 4 texts in the same time
how to display a different text with each image. (i am working in the Main2Activity)
xml code
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="WELCOME "
android:id="@+id/t1"
android:textSize="50dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="49dp"
android:checked="true"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="ANDROID"
android:id="@+id/t3"
android:textSize="50dp"
android:layout_above="@+id/t4"
android:layout_centerHorizontal="true"
android:layout_marginBottom="45dp"
android:checked="false"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="STUDIO"
android:id="@+id/t4"
android:textSize="50dp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="91dp"
android:checked="false"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="TO"
android:id="@+id/t2"
android:layout_below="@+id/t1"
android:layout_centerHorizontal="true"
android:layout_marginTop="47dp"
android:textSize="50dp"
android:checked="false"/>
JAVA CODE
public class Main2Activity extends Activity implements View.OnClickListener{ TextView t1,t2,t3,t4, textview;
@Override
public void onCreate (Bundle savedInstanceState, PersistableBundle persistentState) {
super.onCreate (savedInstanceState, persistentState);
setContentView(R.layout.activity_main);
t1 = (TextView) findViewById (R.id.text);
t1.setOnClickListener (this); //here you're setting onClickListener to listen for taps
textview = (TextView) findViewById (R.id.t1);
t2.setOnClickListener (this);
textview = (TextView) findViewById (R.id.t2);
t3.setOnClickListener (this);
textview = (TextView) findViewById (R.id.t3);
t4.setOnClickListener (this);
textview = (TextView) findViewById (R.id.t4);
}
@Override
public void onClick (View v) { //this is an implementation of OnClickListener interface
switch (v.getId ()){ //here you're reading id of the taped button and doing something depending on what TextView taped
case R.id.t1:
t1.setText ("leo");
break;
case R.id.t2:
t2.setText ("mike");
break;
case R.id.t3:
t3.setText ("raph");
break;
case R.id.t4:
t4.setText ("don");
break;
}}}
You need to implement View.OnClickListener in your activity where TextViews are declared. Code should look somehow like this
@Override
public void onCreate (Bundle savedInstanceState, PersistableBundle persistentState) {
super.onCreate (savedInstanceState, persistentState);
setContentView(R.layout.activity_main);
t1 = (TextView) findViewById (R.id.t1);
t1.setOnClickListener (this);
t2 = (TextView) findViewById (R.id.t2);
t2.setOnClickListener (this);
t3 = (TextView) findViewById (R.id.t3);
t3.setOnClickListener (this);
t4 = (TextView) findViewById (R.id.t4);
t1.setOnClickListener (this);
}
@Override
public void onClick (View v) { //this is an implementation of OnClickListener interface
switch (v.getId ()){ //here you're reading id of the taped button and doing something depending on what TextView taped
case R.id.t1:
t1.setText ("leo");
break;
case R.id.t2:
t2.setText ("mike");
break;
case R.id.t3:
t3.setText ("raph");
break;
case R.id.t4:
t4.setText ("don");
break;
}}}
If you have more then one TextView then you need to .setOnClickListener(this) on every of them
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.