java - Android 将值传递给另一个 Activity

标签 java android android-activity

我有一个带有 30 个按钮的 MainActivity(ID:imageButton1imageButton2...)。在点击事件中,我将启动一个名为 KlikNaDugme 的新 Activity :

主要 Activity

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home);

    buttons = new ImageButton[30];

    for (int i = 0; i < buttons.length; i++) {
        buttons[i] = (ImageButton) findViewById(R.id.imageButton + i);
        vr = i;
        buttons[i].setOnClickListener(new View.OnClickListener() {
            public void onClick(View arg0) {

                Intent myIntent = new Intent(HomeActivity.this, KlikNaDugme.class).putExtra("vrijednost", vr);
                startActivity(myIntent);
            }
        });
    }
}

我正在尝试将 vr 传递给 KlikNaDugme Activity ,该 Activity 被声明为 public int

KlikNaDugme Activity

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_klik_na_dugme);

    int x = getIntent().getExtras().getInt("vrijednost");
    System.out.println(x);
}

问题是它总是得到29的值。我怎样才能正确地传递id?

最佳答案

i 的值存储在按钮的标记中:

    buttons = new ImageButton[30];

    for(int i=0; i<buttons.length; i++) {
        {
            buttons[i] = (ImageButton) findViewById(getResources().getIdentifier("imageButton" + (i + 1), "id", this.getPackageName()));
            buttons[i].setTag(i);

            buttons[i].setOnClickListener(new View.OnClickListener() {
                public void onClick(View view) {

                    Intent myIntent = new Intent(HomeActivity.this, KlikNaDugme.class)
                    myIntent.putExtra("vrijednost", Integer.parseInt(view.getTag().toString()));
                    startActivity(myIntent);
                }
            });
        }
    }

关于java - Android 将值传递给另一个 Activity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51706415/

相关文章:

java - 如何使用java将字符串中的逗号分隔值存储为CSV

java - 十六进制字符串到颜色名称

java - 上传图片时出现问题

android - Activity 识别的 ActivityRecognitionClient 无法解析,android 中出现错误

android - 在 Android 中使用渐变环

android - 如何防止ListView在过滤前显示数据

java - 使用 BufferedWriter 和 JFileChooser 设置保存目录

java - 如何打印HashMap元素从最大到最小

java - 测试android应用报错

android - Safetynet 问题状态 {statusCode=NETWORK_ERROR, resolution=null}