java - 如何从 Android 微调器获取字符串

标签 java android json spinner

我有我放在微调器上的 json,如下所示:

   {
    "data": [
        {
            "kode": "1",
            "text": "No Tujuan"
        },
        {
            "kode": "2",
            "text": "Broadcast Admin PUPI"
        },
        {
            "kode": "3",
            "text": "Broadcast TIM PUPI"
        },
        {
            "kode": "4",
            "text": "Broadcast Semua PUPI"
        },
        {
            "kode": "5",
            "text": "Broadcast Ketua KUB"
        },
        {
            "kode": "6",
            "text": "Broadcast Operator PUPI"
        },
        {
            "kode": "7",
            "text": "DJPT - Executive"
        }
    ]
}

当在微调器中显示时,它显示“文本”但是当用户点击微调器时,它会给出“kode”,但每次我点击我的微调器时,它只给出“文本”而不​​是“kode”,这就是我的方式加载我的微调器:

public class SpinnerType extends AsyncTask<String, String, String>{

    @Override
    protected void onPreExecute(){
        super.onPreExecute();
        dialog = new ProgressDialog(Modul_sms_broadcast.this);
        dialog.setTitle("");
        dialog.setMessage("melakukan pengambilan data...");
        dialog.show();
    }


    protected String doInBackground(String... args) {
        String url ="http://10.10.2";
         JSONArray data = null; 
    try {
        JSONParser jParser = new JSONParser();
        JSONObject json = jParser.getJSONFromUrl(url);
        data = json.getJSONArray(real_data);
        for(int i = 0; i < data.length(); i++){
            JSONObject c = data.getJSONObject(i);

            // Storing each json item in variable
            r1 = c.getString(real_rel1);
            r2 = c.getString(real_rel2);
            tipe_sms.add(new spin(r1, r2));

            System.out.println(r2);
            System.out.println(r1);
        }
    } catch (JSONException e) {
        e.printStackTrace();
    }
    return null;
}

    @Override
    protected void onPostExecute(String file_url){
        dialog.dismiss();
         ArrayAdapter spinnertype = new ArrayAdapter(getApplicationContext(),R.layout.spinner_style, tipe_sms);
         spinnertype.setDropDownViewResource(android.R.layout.simple_list_item_1);
         spinner1.setAdapter(spinnertype);

            code=spinner1.getSelectedItem().toString();
            if(code.equals("1")){
                nomor_sms.setFocusable(false); 
                nomor_sms.setClickable(false);
            }
            else {
                nomor_sms.setFocusable(true); 
                nomor_sms.setClickable(true);
            }

    }
}
public class spin {
      String kode;
      String text;

      public spin(String n, String c) {
        kode = n;
        text = c;
      }

      public String toString() { 
        return text; 
      }
    }

我的代码有问题吗?我希望有人能帮助我解决我的问题。

最佳答案

它只返回文本,因为:

public String toString() { 
        return text; 
      }

编辑:

只需更改为:

public String toString() { 
        return text+" "+kode; 
      }

从选定的项目中获取代码:

code=spinner1.getSelectedItem().toString();
int start = code.lastIndexOf(' ');
String codeval = code.substring(start+1);

关于java - 如何从 Android 微调器获取字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20650658/

相关文章:

java - 下一次出发地为 java

android - 如何在不使用异步任务的情况下避免 networkonmainthread 异常

android - com.firebase.ui.auth.FirebaseUiException : Provider error - Firebase-UI Authentication Facebook login not working

json - Alamofire 使用查询参数 status 500

json - swift 。如何从Firebase数据库的快照中获取特定数据

java - PDF Box - 无法重命名或删除文件

java - Swing MapPanel 更新图形

ruby-on-rails - 将 Json 数据解析为简单数组 Ruby on Rails 4

java - 在 jdeveloper 中导入 org.apache.log4j.Logger

java - 试图调用本地数据库变量并且应用程序停止工作