Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从random获取setImageResource的结果并将其设置为string_Android - Fatal编程技术网

Android 从random获取setImageResource的结果并将其设置为string

Android 从random获取setImageResource的结果并将其设置为string,android,Android,我是一名创建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应用程序和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


请提供帮助。(

我只尝试了一个图像视图,也尝试了静态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
现在,在CommonClickListner中,通过匹配视图中的getId,将settext的逻辑放入

            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=“”


然后我在单击中进行了更改。

哦,你应该看看gridview/listview,对于这样一个简单的需求,这太多代码了。我在使用这个之前尝试过使用gridview。但是我不知道如何用图像填充它。@a.S.对我的问题有什么建议吗?我找不到任何关于这个的教程。我真的需要帮助。看看这个:About public void onClick(View v){//TODO自动生成的方法存根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);}…hi:)我在标记上有错误。我创建了一个局部变量(作为给出的建议之一)。是否正确?代码正在工作,但仅适用于imagebutton1:(我已经完成了您所说的操作,但它仅适用于button1:(是的标记只是局部变量。您是否放置了image1.setOnClickListener(MyCMOCClickListner)和image1.setId(myPics[这应该根据您的随机数]);谢谢你所有的图片按钮。哦,很抱歉我没有更改第X部分(它正在工作:D非常感谢:)),但我能问最后一件事吗?我如何才能“添加”在使用同一文本视图时,这些字符串相互关联?您的意思是说根据用户单击您想要生成字符串?是的。例如,我单击了按钮A和B。如何仅在一个文本视图上添加两个字符串?