【问题标题】:How can I get value from an arrayadapter to pass it another activity如何从 arrayadapter 获取值以将其传递给另一个活动
【发布时间】:2020-07-30 07:29:58
【问题描述】:

在这里,我试图将从微调器(数组适配器)获取的值发送到另一个活动。我使用 json 填充我的微调器,我的微调器如下所示。

ArrayAdapter<String> adp = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, villageList);
        spinner_village.setAdapter(adp);

        spinner_village.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                try {
                    JSONObject villageObject = arrayList.get(position);
                    String villageId = villageObject.getString("id");
                    String villageName = villageObject.getString("name");
                    String villageCode = villageObject.getString("village_code");

                    Toast.makeText(Region.this, villageCode, Toast.LENGTH_SHORT).show();
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {

            }
        });

现在我正在尝试将 "villageCode" 加入到我的创建方法中,以便我可以将此值传递给我的另一个活动。到目前为止我所做的是

        spinner_next.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(Region.this, Participant_Details.class)
                    .putExtra("catment_code", **-----**);
            Region.this.startActivity(intent);
            Region.this.finish();
        }
    })

putextra 出错。我该如何解决或者是什么问题。

【问题讨论】:

  • 显示villageObject的结果
  • 如果你的代码完美,那么声明String villageCode global
  • 请分享您的活动/课程的完整代码

标签: android android-intent android-arrayadapter android-spinner


【解决方案1】:

您可以将字符串 villageCode 设置为全局变量(您可以通过在类级别声明它来使您的变量成为全局变量它不应该在您的类的任何方法中 ) 然后在 onClick 方法中提取字符串的值。像这样:

    spinner_next.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent intent = new Intent(Region.this, Participant_Details.class)
                .putExtra("catment_code", villageCode); //the value is being set here
        Region.this.startActivity(intent);
        Region.this.finish();
    }
})

【讨论】:

    猜你喜欢
    • 2016-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多