0
这是我在stackoverflow上的第一个问题,并且我对android(我是iOS开发人员)有点新了。 我正在使用volley来填充Json数据的列表视图,现在我想处理listview项目上的点击并将所有与我点击的项目相关的数据传递给新的活动。我怎样才能做到这一点?这是我称之为“MenuActivity”的“MainActivity”。预先感谢您的帮助^^。Android:如何将Json数据传递给Json填充的其他活动列表视图
public class MenuActivity extends AppCompatActivity {
JSONArray contact = null;
private String urlJsonObj = "http://advadwords.it/Hotel_managing_app/index.php/Controller_managing_app/json_menu";
private static String TAG = MainActivity.class.getSimpleName();
private ProgressDialog pDialog;
//private String jsonResponse;
ArrayList<HashMap<String, String>> contactList;
ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_menu);
contactList = new ArrayList<HashMap<String, String>>();
lv = (ListView) findViewById(R.id.list);
pDialog = new ProgressDialog(this);
pDialog.setMessage("Sto caricando...");
pDialog.setCancelable(false);
makeJsonObjectRequest();
}
private void makeJsonObjectRequest() {
pDialog.show();
JsonObjectRequest jsonObjReq = new JsonObjectRequest(Method.GET,
urlJsonObj, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.d(TAG, response.toString());
try {
contact = response.getJSONArray("menu");
for (int i = 0; i < contact.length(); i++) {
JSONObject details = (JSONObject) contact.get(i);
String giorno = details.getString("Giorno");
String pranzoPrimo = details.getString("Pranzo_primo");
HashMap<String, String> contct = new HashMap<String, String>();
contct.put("Giorno", giorno);
contct.put("Pranzo_primo", pranzoPrimo);
contactList.add(contct);
//adapter to set response in textview
ListAdapter adapter = new SimpleAdapter(
MenuActivity.this, contactList,
R.layout.list_item, new String[]{"Giorno", "Pranzo_primo"}, new int[]{R.id.name, R.id.primoPranzo});
lv.setAdapter(adapter);
}
} catch (JSONException e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(),
"Error: " + e.getMessage(),
Toast.LENGTH_LONG).show();
}
hidepDialog();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
Toast.makeText(getApplicationContext(),
error.getMessage(), Toast.LENGTH_SHORT).show();
// hide the progress dialog
hidepDialog();
}
});
AppController.getInstance().addToRequestQueue(jsonObjReq);
}
private void showpDialog() {
if (!pDialog.isShowing())
pDialog.show();
}
private void hidepDialog() {
if (pDialog.isShowing())
pDialog.dismiss();
}
}
我试图将这段代码复制到onCreate方法,但它给了我几个错误。第一个在“lvt.get(position);”中,第二个在Configs.TAG_ID是 –
是的,因为我只是给你一些提示。你介意告诉我这个错误吗? –
它说:“无法解决方法get(int)”和“无法解析符号配置” –