xiaoxiaoaishang 2013-01-29 06:30 采纳率: 100%
浏览 2606
已采纳

Postparameter报错误信息

我建了一个app,在应用程序中,当点击按钮时就发送一个字符串给下一个activity,在第二个activity中我用这个值从数据库中检索数据。
下边是代码

Intent myIntent = getIntent(); // 从前一个activity中获得值
myIntent.getStringExtra("lbl_name");
postParameters = new ArrayList<NameValuePair>();
postParameters.add(new BasicNameValuePair("product", lbl_name//传递name给database .getText().toString()));

问题是它不会继承lbl_name

我在网上找了很久,但是都没有找到解决方法。麻烦告诉我一下这么做对不对?

传递值的代码.

Intent myIntent = new Intent(SinglePlaceActivity.this,RecoProd.class);
                                        myIntent.putExtra("lbl_name", "lbl_name");
                                        SinglePlaceActivity.this.startActivity(myIntent);

访问数据库的代码.

public class RecoProd extends Activity {
    EditText pd;
    TextView error;

    ArrayList<NameValuePair> postParameters;
    /** 当activity第一次被创建的时候调用 */
    @Override
    public void onCreate(Bundle savedInstanceState) {

        try {
            Class<?> strictModeClass = Class.forName("android.os.StrictMode", true, Thread.currentThread()
                    .getContextClassLoader());

            Class<?> threadPolicyClass = Class.forName("android.os.StrictMode$ThreadPolicy", true, Thread
                    .currentThread().getContextClassLoader());

            Class<?> threadPolicyBuilderClass = Class.forName("android.os.StrictMode$ThreadPolicy$Builder", true,
                    Thread.currentThread().getContextClassLoader());

            Method setThreadPolicyMethod = strictModeClass.getMethod("setThreadPolicy", threadPolicyClass);

            Method detectAllMethod = threadPolicyBuilderClass.getMethod("detectAll");
            Method penaltyMethod = threadPolicyBuilderClass.getMethod("penaltyLog");
            Method buildMethod = threadPolicyBuilderClass.getMethod("build");

            Constructor<?> threadPolicyBuilderConstructor = threadPolicyBuilderClass.getConstructor();
            Object threadPolicyBuilderObject = threadPolicyBuilderConstructor.newInstance();

            Object obj = detectAllMethod.invoke(threadPolicyBuilderObject);

            obj = penaltyMethod.invoke(obj);
            Object threadPolicyObject = buildMethod.invoke(obj);
            setThreadPolicyMethod.invoke(strictModeClass, threadPolicyObject);

        } catch (Exception ex) {
            String TAG = null;
            Log.w(TAG, ex);
        }
        super.onCreate(savedInstanceState);
        setContentView(R.layout.recomain);
        Intent myIntent = getIntent(); // 从前一个activity中获得值
        String lbl_name= myIntent.getStringExtra("lbl_name");//< 从intent中获得
        pd = (EditText) findViewById(R.id.name);

        error = (TextView) findViewById(R.id.showresult);


                postParameters = new ArrayList<NameValuePair>();
                postParameters.add(new BasicNameValuePair("product", lbl_name
                        ));


                // String valid = "1";

                DownloadWebPageTask dw = new DownloadWebPageTask();
                dw.execute("");

    }

    private class DownloadWebPageTask extends AsyncTask<String, Void, String> {
        @Override
        protected String doInBackground(String... urls) {
            String response = null;
            for (String url : urls) {
                try {
                    response = CustomHttpClient.executeHttpPost("http://192.168.1.7/abc/check2.php", postParameters);  
                    String res = response.toString();
                    // res = res.trim();
                    res = res.replaceAll("\\s+", "");
                    // error.setText(res);
                    try{
                        res = "";
                  JSONArray jArray = new JSONArray(res);
                        for(int i=0;i<jArray.length();i++){
                                JSONObject json_data = jArray.getJSONObject(i);
                                Log.i("prod_id","id: "+json_data.getInt("prod_id")+
                                        ", prod_name: "+json_data.getString("prod_name")+
                                        ", prod_category: "+json_data.getString("prod_category")+
                                        ", prod_cost: "+json_data.getDouble("prod_cost")
                                );
                                //在屏幕输出
                                res += "\n" + json_data.getInt("prod_id") + " -> "+ json_data.getString("prod_name");
                        }
                }
                catch(JSONException e){
                        Log.e("log_tag", "Error parsing data "+e.toString());
                }

                try{
                 error.setText(res);
                }
                catch(Exception e){
                 Log.e("log_tag","Error in Display!" + e.toString());;          
                }   
           }
                 catch (Exception e) {
            Log.e("log_tag","Error in http connection!!" + e.toString());     
           }
            }
            return response;

               }
        @Override
        protected void onPostExecute(String result) {
        }
    }
}
  • 写回答

1条回答

  • Sueyexin 2013-01-31 06:00
    关注

    你需要从Intent继承lbl_name值,就像这样:

    Intent myIntent = getIntent(); //从前一个activity获得值
     String lbl_name= myIntent.getStringExtra("lbl_name");//< 从Intent获得lbl_name
     postParameters = new ArrayList<NameValuePair>();
     postParameters.add(new BasicNameValuePair("product",lbl_name));
    

    或者,如果lbl_name在上一个activity是静态的话,这样你可以用这个访问:

    postParameters.add(new BasicNameValuePair("product",
                                  Your_prev_Activity_Name.lbl_name));
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题