我有我放在微调器上的 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/