ihave 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;
}
}
我的代码是否有任何错误?我希望有人能帮助我解决我的问题。
答案 0 :(得分:2)
tipe_sms你可以用于任何文本。对于文本,你可以在微调器上使用onItemSelectedListener中的位置,然后你就可以获得该位置的旋转对象,现在你可以轻松地得到kode或文本了。你明白我在说什么。
答案 1 :(得分:2)
由于以下原因仅返回文字:
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);