Я пытаюсь получить значение JSON с помощью EditText.JSON Get Value by Edittext
Сначала у меня была путаница исключений nullpointer, решила это. Но теперь моя функция просто не работает. Обертывание моего мозга над этим ...
Я попытался создать EditText, получить это значение в String и передать его объекту JSON. Не знаю, что я делаю неправильно ... Или я что-то забываю?
public class MyActivity extends Activity {
TextView uid;
TextView name1;
TextView email1;
EditText edt;
Button Btngetdata;
//URL to get JSON Array
private static String url = "*";
//JSON Node Names
private static final String TAG_TAG = "tag";
private static final String TAG_ID = "id";
private static final String TAG_LAST_NAME = "last_name";
private static final String TAG_EMAIL = "country";
JSONArray user = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
Btngetdata = (Button)findViewById(R.id.getdata);
edt = (EditText)findViewById(R.id.edittext);
Btngetdata.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new JSONParse().execute();
}
});
}
private class JSONParse extends AsyncTask<String, String, JSONObject> {
private ProgressDialog pDialog;
@Override
protected void onPreExecute() {
super.onPreExecute();
uid = (TextView)findViewById(R.id.uid);
name1 = (TextView)findViewById(R.id.name);
email1 = (TextView)findViewById(R.id.email);
pDialog = new ProgressDialog(MyActivity.this);
pDialog.setMessage("Getting Data ...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
@Override
protected JSONObject doInBackground(String... args) {
JSONParser jParser = new JSONParser();
// Getting JSON from URL
JSONObject json = jParser.getJSONFromUrl(url);
return json;
}
@Override
protected void onPostExecute(JSONObject json) {
pDialog.dismiss();
try {
// Getting JSON Array
user = json.getJSONArray(TAG_TAG);
JSONObject c = user.getJSONObject(0);
String xyz = edt.getText().toString();
// Storing JSON item in a Variable
String id = c.getString(TAG_ID);
String name = c.getString(TAG_LAST_NAME);
String email = c.getString(TAG_EMAIL);
//Set JSON Data in TextView
uid.setText(id);
name1.setText(name);
email1.setText(email);
edt.setText(xyz);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
{ "тег": [{ "ID": "1", "first_name": "Филипп", "last_name": "Портер", "электронная почта": "[email protected] », "страна": "Китай", "ip_address": "26.83.255.206"}, { "ID": "2", "first_name": "Нэнси", "last_name": "Мартин", "электронная почта": "[email protected]", "страна": "Колумбия", "ip_address": "160.93.80.1"}, { "ID": "3", "first_name": "Энн", "last_name": "Peterson », "электронная почта": "[email protected]", "страна": "Китай", "ip_address": "251.254.74.162"}, { "ID": "4", "first_name": "Рахиль", "last_name": "Кларк", "электронная почта": "[email protected]", "страна": "Бразилия", "ip_address": "58.218.248.5"}, { "ID": "5", "first_name ":" Вереск», "last_name": "Burton", "электронная почта": "[email protected]", "страна": "Эфиопия", "ip_address": "244.69.119.16"}, { "ID": "6", "first_name": "Рут", "last_name": "Дорожка", "ЕМА иль ":" [email protected]», "страна": "Бразилия", "ip_address": "18.173.102.54"}, { "ID": "7", "first_name": "Эндрю", "last_name" : «Turner», «email»: «[email protected]», «страна»: «Соединенные Штаты», «ip_address»: «13.119.240.234»}, {«id»: «8», «first_name»: "Ванда", "last_name": "Медина", "электронная почта": "[email protected]", "страна": "Нидерланды", "ip_address": "151.139.21.237"}, { "ID": «9», «first_name»: «Robert», «last_name»: «Elliott», «email»: «[email protected]», «страна»: «Соединенные Штаты», «ip_address»: «34.200.249.109», }, { "ID": "10", "first_name": "Кевин", "last_name": "Харрисон", "электронная почта": "страна" "[email protected]",: "Бразилия", "ip_address" : "106.84.164.86"}]}
public class JSONParser {
static InputStream is = null;
static JSONObject jObj = null;
static String json = "";
// constructor
public JSONParser() {
}
public JSONObject getJSONFromUrl(String url) {
// Making HTTP request
try {
// defaultHttpClient
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
is = httpEntity.getContent();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(
is, "iso-8859-1"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "n");
}
is.close();
json = sb.toString();
} catch (Exception e) {
Log.e("Buffer Error", "Error converting result " + e.toString());
}
// try parse the string to a JSON object
try {
jObj = new JSONObject(json);
} catch (JSONException e) {
Log.e("JSON Parser", "Error parsing data " + e.toString());
}
// return JSON String
return jObj;
}
}
РЕДАКТИРОВАТЬ
JSONObject c = user.getJSONObject(Integer.parseInt(xyz));
Я Модифицированный к этому, им получить ответ, отличный по умолчанию 1, когда базовое значение было getJSONObject (0), но теперь им ввод 1 и им получать 2, ввод 4 получая 5 ..
Кто-нибудь знает, как решить эту проблему?
вы могли бы разместить тур JSON? возможно, вы не получаете правильные значения, так как для представлений кажется ok – zozelfelfo
Я просто добавил json –
uid = (TextView) findViewById (R.id.uid); name1 = (TextView) findViewById (R.id.name); email1 = (TextView) findViewById (R.id.email); переместить это в oncreate –