I';我正在使用Android Studio创建一个应用程序。我遇到的情况是我试图使用另一个活动中的图像

I';我正在使用Android Studio创建一个应用程序。我遇到的情况是我试图使用另一个活动中的图像,android,Android,该应用程序的想法是通过记忆图像来解决这个问题。我已经完成了majoriti代码,但我遇到了一个情况,我试图使用另一个活动的图像 这是MainActivity的代码。我正在设置一个计时器来记忆给定的6个img的多边形 public class MainActivity extends AppCompatActivity { private TextView Text1; public ImageView imageView; public ImageView imageV

该应用程序的想法是通过记忆图像来解决这个问题。我已经完成了majoriti代码,但我遇到了一个情况,我试图使用另一个活动的图像

这是MainActivity的代码。我正在设置一个计时器来记忆给定的6个img的多边形

public class MainActivity extends AppCompatActivity {

    private TextView Text1;
    public ImageView imageView;
    public ImageView imageView2;
    public ImageView imageView3;
    public ImageView imageView4;
    public ImageView imageView5;
    public ImageView imageView6;
    Timer timer;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        imageView = findViewById(R.id.imageView);
        imageView2 = findViewById(R.id.imageView2);
        imageView3 = findViewById(R.id.imageView3);
        imageView4 = findViewById(R.id.imageView4);
        imageView5 = findViewById(R.id.imageView5);
        imageView6 = findViewById(R.id.imageView6);

        timer = new Timer();
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                Intent intent = new Intent(MainActivity.this, Question1.class);
                startActivity(intent);
                finish();
            }
        },5000);
    }
}
下面的代码是第二个活动。我正在尝试修复位于“imageView.setImageResource(getResources().getIdentifier(quick.get(0),“drawable”,getPackageName())”的代码

公共类问题1扩展了AppCompative活动{
私人文本视图问题1;
专用按钮ans1、ans2、ans3、ans4、ans5、ans6、next;
私用字符串右键回答;
私人int右键\答案\计数;
私有整数quizCount=1;
ArrayList quizArray=新的ArrayList();
字符串quizData[][]{
{“七边形”、“三角形”、“四边形”、“五边形”、“六边形”、“十边形”}
};
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_问题1);
问题1=findViewById(R.id.Question1);
ans1=findViewById(R.id.ans1);
ans2=findViewById(R.id.ans2);
ans3=findViewById(R.id.ans3);
ans4=findViewById(R.id.ans4);
ans5=findViewById(R.id.ans5);
ans6=findViewById(R.id.ans6);
next=findViewById(R.id.next);
for(int i=0;i

因此,我不知道如何让第二个活动使用来自MainActivity的映像。

您可以将映像的资源ID作为一个额外的目的传递:


Owhh我已经研究了您给我的链接。它对我很有用!但是我有一个关于发送数据和接收数据的问题。它需要数据类型,但我不知道图像的类型。资源ID是int。您只能将某些数据类型作为intent extra传递,但int是其中之一。Owhh好的。我已经解决了我的问题。谢谢您或者你的回复
public class Question1 extends AppCompatActivity {

    private TextView Question1;
    private Button ans1, ans2, ans3, ans4, ans5, ans6, next;

    private String Right_Answer;
    private int Right_Answer_Count;
    private int quizCount = 1;

    ArrayList<ArrayList<String>> quizArray = new ArrayList<>();

    String quizData[][] = {
            {"heptagon","triangle","quadrilateral","pentagon","hexagon","decagon"}
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_question1);

        Question1 = findViewById(R.id.Question1);
        ans1 = findViewById(R.id.ans1);
        ans2 = findViewById(R.id.ans2);
        ans3 = findViewById(R.id.ans3);
        ans4 = findViewById(R.id.ans4);
        ans5 = findViewById(R.id.ans5);
        ans6 = findViewById(R.id.ans6);
        next = findViewById(R.id.next);

        for (int i=0; i < quizData.length; i++){
            ArrayList<String> tmpArray = new ArrayList<>();
                tmpArray.add(quizData[i][0]);
                tmpArray.add(quizData[i][1]);
                tmpArray.add(quizData[i][2]);
                tmpArray.add(quizData[i][3]);
                tmpArray.add(quizData[i][4]);
                tmpArray.add(quizData[i][5]);

                quizArray.add(tmpArray);
            }

            Show_Next_Quiz();
        }

        public void Show_Next_Quiz(){

            Random random = new Random();
            int Random_Num = random.nextInt(quizArray.size());

            ArrayList<String> quiz = quizArray.get(Random_Num);

            imageView.setImageResource(
                    getResources().getIdentifier(quiz.get(0), "drawable",getPackageName()));
            imageView2.setImageResource(
                    getResources().getIdentifier(quiz.get(0), "drawable",getPackageName()));
            imageView3.setImageResource(
                    getResources().getIdentifier(quiz.get(0), "drawable",getPackageName()));
            imageView4.setImageResource(
                    getResources().getIdentifier(quiz.get(0), "drawable",getPackageName()));
            imageView5.setImageResource(
                    getResources().getIdentifier(quiz.get(0), "drawable",getPackageName()));
            imageView6.setImageResource(
                    getResources().getIdentifier(quiz.get(0), "drawable",getPackageName()));
            Right_Answer = quiz.get(1);

            Collections.shuffle(quiz);

            ans1.setText(quiz.get(0));
            ans2.setText(quiz.get(1));
            ans3.setText(quiz.get(2));
            ans4.setText(quiz.get(3));
            ans5.setText(quiz.get(4));
            ans6.setText(quiz.get(5));

            quizArray.remove(Random_Num);

    }

    public void Check_Answer(View view) {

        Button Answer = findViewById(view.getId());
        String btnText = Answer.getText().toString();

        String alertTitle;

        if (btnText.equals(Right_Answer)){
            alertTitle = "Correct !!!";
            Right_Answer_Count++;
        }   else    {
            alertTitle = "Sorry, you are wrong =(";
        }

        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle(alertTitle);
        builder.setMessage("Answer : " + Right_Answer);
        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int i) {
                if (quizArray.size() < 1){
                    Show_Result();
                }   else {
                    quizCount++;
                    Show_Next_Quiz();
                }
            }
        });
        builder.setCancelable(false);
        builder.show();
    }

    public void Show_Result(){
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("Result");
        builder.setMessage(Right_Answer_Count + " / 10");
        builder.setPositiveButton("Try Again?", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int i) {
                recreate();
            }
        });
        builder.setNegativeButton("Quit", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int i) {
                finish();
            }
        });
        builder.show();
    }
}