我是创建Android应用程序以及java编程的新手。以下代码来自我观看过的教程。
所以在我的untimed.xml中,我有16个ImageButton和1个TextView以及一个带有listview的scrollview。 所以每个ImgBtn都有它的id = Button1,Button2 ... textView id是textHere。 在我的Untimed.java
中import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageButton;
import android.widget.TextView;
public class Untimed extends Activity{
String hello;
TextView text;
ImageButton image1, image2, image3, image4, image5, image6, image7, image8, image9, image10, image11, image12, image13, image14, image15, image16;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.untimed);
final TextView text = (TextView) findViewById(R.id.textHere);
final ImageButton image1 = (ImageButton) findViewById(R.id.Button1);
final ImageButton image2 = (ImageButton) findViewById(R.id.Button2);
final ImageButton image3 = (ImageButton) findViewById(R.id.Button3);
final ImageButton image4 = (ImageButton) findViewById(R.id.Button4);
final ImageButton image5 = (ImageButton) findViewById(R.id.Button5);
final ImageButton image6 = (ImageButton) findViewById(R.id.Button6);
final ImageButton image7 = (ImageButton) findViewById(R.id.Button7);
final ImageButton image8 = (ImageButton) findViewById(R.id.Button8);
final ImageButton image9 = (ImageButton) findViewById(R.id.Button9);
final ImageButton image10 = (ImageButton) findViewById(R.id.Button10);
final ImageButton image11 = (ImageButton) findViewById(R.id.Button11);
final ImageButton image12 = (ImageButton) findViewById(R.id.Button12);
final ImageButton image13 = (ImageButton) findViewById(R.id.Button13);
final ImageButton image14 = (ImageButton) findViewById(R.id.Button14);
final ImageButton image15 = (ImageButton) findViewById(R.id.Button15);
final ImageButton image16 = (ImageButton) findViewById(R.id.Button16);
final int[] myPics = { R.drawable.lettera, R.drawable.letterb, R.drawable.letterc, R.drawable.lettere,R.drawable.letteri, R.drawable.lettero, R.drawable.letteru, R.drawable.letterd, R.drawable.letterf, R.drawable.letterg,R.drawable.letterh, R.drawable.letterj, R.drawable.letterk, R.drawable.letterl, R.drawable.letterm, R.drawable.lettern,R.drawable.letterp, R.drawable.letterq, R.drawable.letterqu, R.drawable.letterr, R.drawable.letters, R.drawable.lettert, R.drawable.letterv,R.drawable.letterw, R.drawable.letterx, R.drawable.lettery, R.drawable.letterz };
int rando = (int)(Math.random()* 27);
image1.setImageResource(myPics[rando]);
int rando1 = (int)(Math.random()* 27);
image2.setImageResource(myPics[rando1]); (... to image16)
image1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (!image1.equals(getResources(R.drawable.lettera))){
hello = "A";
text.setText(hello);
}
else{
if (!image1.equals(getResources(R.drawable.letterb))){
hello = "B";
text.setText(hello);
}
else{
if (!image1.equals(getResources(R.drawable.letterc))){
hello = "C";
text.setText(hello);
}
else{ .......(same codes for the rest)
}});
}
// I created this method because there are errors in getResources in the above codes.
protected Object getResources(int letterz) {
// TODO Auto-generated method stub
return null;
}
}
代码正在运行(我认为),因为每当我点击第一张图片时,textview显示" A"并且只有字母A. 我希望它能显示确切的价值。如果显示的图像是字母F,那么textview也应该等于字母F.
请帮助。:(
答案 0 :(得分:0)
我尝试过只有一个图像视图,而且静态ID也是如此,而不是随机生成的。但这应该适合你,
为你的所有16个ImageButton设置这些,想法是使用setId,
image1 = (ImageButton) findViewById(R.id.imgBtn1);
image1.setOnClickListener(myCommoClickListner); // Set myCommoClickListner for all 16
int rando = (int)(Math.random()* 27);
image1.setImageResource(myPics[rando]);
image1.setId(myPics[rando1]); // set id immediate after image button resource is set
现在在你的CommoClickListner中放置你的settext逻辑,通过匹配视图中的getId,
OnClickListener myCommoClickListner = new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
// Log.i(TAG, "arg0.getTag().toString() = " + arg0.getTag().toString());
Log.i(TAG,"arg0.getId() = " + arg0.getId());
if(arg0.getId()==R.drawable.lettera){
Log.i(TAG,"arg0.getId() = " + arg0.getId());
generatedString = generatedString+ "A"; //[PLACEE RESPACTIVE CHARACTEER HERE]
text.setText(generatedString);
}
}
};
编辑:
声明`String generatedString =“”;在你班上;
然后我点击了一下。