【问题标题】:android send data in listview to serverandroid将listview中的数据发送到服务器
【发布时间】:2014-10-19 07:26:32
【问题描述】:

我从服务器检索了一些数据并将这些数据填充到列表视图中。我想使用我收到的部分数据并将其发送回服务器。我该怎么做?当我单击其中一个列表项时,它将使用按钮启动另一个活动,当我单击其中一个按钮时,应用程序将使用该列表项中的部分数据(先前从服务器检索)并将其发送回服务器。我是android编程的新手,我被卡住了,不知道该怎么做。有人可以建议我吗?我知道如何通过手动输入要发送的数据来向服务器发送数据。

这就是我从服务器获取数据并填充到列表视图中的方式,当我单击该列表视图项时,我想将接收到的特定电话号码发送回服务器:

public class TabActivityQueue extends Fragment {

ListView list;
TextView number;
TextView info;
TextView remark;
TextView statuss;
Button Btngetdata;
ArrayList<HashMap<String, String>> oslist = new ArrayList<HashMap<String, String>>();

//URL to get JSON Array
private static String url = "http://172.22.85.235:8080/Qproject/servlet/Qaction?action_flag=find";

//JSON Node Names 
private static final String Table2 = "table2";
private static final String phonenumber = "phonenumber";
private static final String peoplenumber = "peoplenumber";
private static final String remarks = "remarks";
private static final String status = "status";

JSONArray table2 = null;



 public View onCreateView(LayoutInflater inflater, ViewGroup container, 
            Bundle savedInstanceState) {
            // Inflate the layout for this fragment
            //This layout contains your list view 
                View view = inflater.inflate(R.layout.activity_tab_activity_queue, container, false);


             return view;
        }


@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);

oslist = new ArrayList<HashMap<String, String>>();
Btngetdata = (Button)getView().findViewById(R.id.getdata);
Btngetdata.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        new JSONParse().execute();  
    }
});

}

private class JSONParse extends AsyncTask<String, String, JSONObject> {
     public ProgressDialog pDialog;
    @Override
   protected void onPreExecute() {
   super.onPreExecute();
   number = (TextView)getView().findViewById(R.id.number);
     info = (TextView)getView().findViewById(R.id.info);
     remark = (TextView)getView().findViewById(R.id.remark);
     statuss = (TextView)getView().findViewById(R.id.statuss);
   pDialog = new ProgressDialog(getActivity());
   pDialog.setMessage("Getting Data ...");
   pDialog.setIndeterminate(false);
   pDialog.setCancelable(true);
   pDialog.show();



}

@Override
   public JSONObject doInBackground(String... args) {

    JSONParser jParser = new JSONParser();

    // Getting JSON from URL
    JSONObject json = jParser.getJSONFromUrl(url);
    return json;
}
 @Override
public void onPostExecute(JSONObject json) {
     pDialog.dismiss();
     try {
            // Getting JSON Array from URL
            table2 = json.getJSONArray(Table2);
            for(int i = 0; i < table2.length(); i++){
            JSONObject c = table2.getJSONObject(i);

            // Storing  JSON item in a Variable
            String number = c.getString(phonenumber);
            String info = c.getString(peoplenumber);
            String remark = c.getString(remarks);
            String statuss = c.getString(status);




            // Adding value HashMap key => value


            HashMap<String, String> map = new HashMap<String, String>();

            map.put(phonenumber, number);
            map.put(peoplenumber, info);
            map.put(remarks, remark);
            map.put(status, statuss);

            oslist.add(map);
            list=(ListView)getView().findViewById(R.id.list);





            ListAdapter adapter = new SimpleAdapter(getActivity(), oslist,
                    R.layout.list_view,
                    new String[] { phonenumber,peoplenumber, remarks,status }, new int[] {
                            R.id.number,R.id.info, R.id.remark,R.id.statuss});

            list.setAdapter(adapter);
            list.setOnItemClickListener(new AdapterView.OnItemClickListener() {

                @Override
                public void onItemClick(AdapterView<?> parent, View view,
                                        int position, long id) {
                    //Toast.makeText(getActivity(), "You Clicked at "+oslist.get(+position).get("name"), Toast.LENGTH_SHORT).show();
                     Intent ThreeButton = new Intent(getActivity(), ThreeButton.class);
                     startActivity(ThreeButton);
                 } 
                }
            );

            }
    } catch (JSONException e) {
        e.printStackTrace();
    }


 }
}
}

【问题讨论】:

    标签: android listview android-activity android-fragments android-listview


    【解决方案1】:
             list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    
                @Override
                public void onItemClick(AdapterView<?> parent, View view,
                                        int position, long id) {
    
                     Intent ThreeButton = new Intent(getActivity(), ThreeButton.class);
                     ThreeButton.putExtra("phone", oslist.get(position).get("phonenumber"));
    
                     //u can put all variables similarly...
                    startActivity(ThreeButton);
                 } 
                }
            );
    
     In  ThreeButton Activity
    
     onCreate(){
    
           Intent data=getIntent();
           data.getString("phone");
           Log.v("phone",phone);
    
    
        }
    

    【讨论】:

      【解决方案2】:

      您无法在下一个活动中访问列表视图中的数据。您可以将所需的数据传递给新活动,而不是尝试从那里获取。在调用 startActivity 之前,使用 putExtra 方法放入意图数据。顺便说一句,如果你正在使用 JSON,你应该检查 Gson 库来解析 json

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-07-19
        • 2015-08-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-23
        • 2016-07-28
        相关资源
        最近更新 更多