Android 空指针异常-尝试从PHPMYADMIN服务器检索数据

Android 空指针异常-尝试从PHPMYADMIN服务器检索数据,android,android-listview,Android,Android Listview,我正在编写一个应用程序,其中我试图从服务器PHPMYADMIN获取以前的订单详细信息,并希望在ListView中显示这些订单详细信息,但每当我运行我的应用程序getting NullPointerException时,请检查我的代码,并告诉我缺少什么以及我在哪里出错 日志显示: 05-22 12:33:35.652: E/AndroidRuntime(786): Caused by: java.lang.NullPointerException 05-22 12:33:35.652: E/And

我正在编写一个应用程序,其中我试图从服务器PHPMYADMIN获取以前的订单详细信息,并希望在ListView中显示这些订单详细信息,但每当我运行我的应用程序getting NullPointerException时,请检查我的代码,并告诉我缺少什么以及我在哪里出错

日志显示:

05-22 12:33:35.652: E/AndroidRuntime(786): Caused by: java.lang.NullPointerException
05-22 12:33:35.652: E/AndroidRuntime(786):  at OrdersActivity.showInfo(OrdersActivity.java:121)
05-22 12:33:35.652: E/AndroidRuntime(786):  at OrdersActivity.onCreate(OrdersActivity.java:75)
05-22 12:33:35.652: E/AndroidRuntime(786):  at android.app.Activity.performCreate(Activity.java:5104)
05-22 12:33:35.652: E/AndroidRuntime(786):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
05-22 12:33:35.652: E/AndroidRuntime(786):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
05-22 12:33:35.652: E/AndroidRuntime(786):  ... 11 more
public class OrdersActivity extends Activity {

TextView total, items ;
    String strMemberID,resultServer,MemberID;   

    ListView list;
    OrdersAdapter adapter;
    ArrayList<HashMap<String, String>> itemsList;


    /** Called when the activity is first created. */
    @SuppressWarnings("deprecation")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_orders);

        // Permission StrictMode
        if (android.os.Build.VERSION.SDK_INT > 9) {
            StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
            StrictMode.setThreadPolicy(policy);
            }
        showInfo();         

        itemsList = new ArrayList<HashMap<String, String>>();
        list = (ListView) findViewById(R.id.listView1);
        adapter = new OrdersAdapter(this, itemsList);
        list.setAdapter(adapter);



        if (isNetworkAvailable()) {
            new MyAsyncTask().execute();
        } else {

            AlertDialog alertDialog = new AlertDialog.Builder(OrdersActivity.this).create();
            alertDialog.setMessage("The Internet connection appears to be offline.");
            alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {

                }
            });
            alertDialog.show();
        }
    }

    public void showInfo()
    {
            total = (TextView)findViewById(R.id.txtTotalAmount);
            items = (TextView)findViewById(R.id.txtItemDetails);

            String url = "http://172.16.0.4/res/order_fetch.php";
            Intent intent= getIntent();
            MemberID = intent.getStringExtra("MemberID");
            List<NameValuePair> params = new ArrayList<NameValuePair>();
            params.add(new BasicNameValuePair("sMemberID", MemberID));
            resultServer  = getHttpPost(url,params);

            String strTotal = "";
            String strItems = "";


            JSONObject c;
            try {
            c = new JSONObject(resultServer);
            strTotal = c.getString("TotalAmount");              
            strItems = c.getString("ItemDetails");

            if(!strMemberID.equals(""))
            {                   
                total.setText(strTotal);
                items.setText(strItems);                
            }
            else
            {               
                total.setText("-");
                items.setText("-");
            }
            } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            }       
    }       

        public String getHttpPost(String url,List<NameValuePair> params) {
            StringBuilder str = new StringBuilder();
            HttpClient client = new DefaultHttpClient();
            HttpPost httpPost = new HttpPost(url);

        try {
            httpPost.setEntity(new UrlEncodedFormEntity(params));
            HttpResponse response = client.execute(httpPost);
            StatusLine statusLine = response.getStatusLine();
            int statusCode = statusLine.getStatusCode();
            if (statusCode == 200) { // Status OK
                HttpEntity entity = response.getEntity();
                InputStream content = entity.getContent();
                BufferedReader reader = new BufferedReader(new InputStreamReader(content));
                String line;
                while ((line = reader.readLine()) != null) {
                    str.append(line);
                }
            } else {
                Log.e("Log", "Failed to download result..");
            }
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return str.toString();
    }

    private boolean isNetworkAvailable() {
        ConnectivityManager cm = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
        NetworkInfo info = cm.getActiveNetworkInfo();
        return (info != null);
    }

    class MyAsyncTask extends
            AsyncTask<String, Integer, ArrayList<HashMap<String, String>>> {
        private ProgressDialog progressDialog = new ProgressDialog(
                OrdersActivity.this);

        @Override
        protected void onPreExecute() {
            progressDialog.setMessage("Loading, Please wait.....");
            progressDialog.show();
        }

        @Override
        protected ArrayList<HashMap<String, String>> doInBackground(
                String... params) {
            // TODO Auto-generated method stub
            return null;
        }


        @Override
        protected void onPostExecute(ArrayList<HashMap<String, String>> result) {
            list = (ListView) findViewById(R.id.listView1);
            adapter = new OrdersAdapter(OrdersActivity.this, itemsList);
            list.setAdapter(adapter);

            this.progressDialog.dismiss();
            list.setOnItemClickListener(new OnItemClickListener() {

                public void onItemClick(AdapterView<?> parent, View view,
                        int position, long id) {

                }

            });

        }
    }
}
public class OrdersAdapter extends BaseAdapter {

    private Activity activity;
    private ArrayList<HashMap<String, String>> data;
    private static LayoutInflater inflater=null;
    String strName,strMemberID ;

    public OrdersAdapter(Activity a, ArrayList<HashMap<String, String>> d) {
        activity = a;
        data=d;
        inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }

    public int getCount() {
        return data.size();
    }

    public Object getItem(int position) {
        return position;
    }

    public long getItemId(int position) {
        return position;
    }

    public View getView(int position, View convertView, ViewGroup parent) {
        View vi=convertView;
        if(convertView==null)
            vi = inflater.inflate(R.layout.listrow_orders, null);

        TextView title = (TextView)vi.findViewById(R.id.txtTotalAmount); 
        TextView description = (TextView)vi.findViewById(R.id.txtItemDetails); 


        HashMap<String, String> item = new HashMap<String, String>();
        item = data.get(position);

        title.setText(item.get(strName));
        description.setText(strMemberID);
        return vi;
    }
}
错误行号75是:
showinfo()

错误行号121是:
if(!strMemberID.equals(“”)

OrdersActivity.java:

05-22 12:33:35.652: E/AndroidRuntime(786): Caused by: java.lang.NullPointerException
05-22 12:33:35.652: E/AndroidRuntime(786):  at OrdersActivity.showInfo(OrdersActivity.java:121)
05-22 12:33:35.652: E/AndroidRuntime(786):  at OrdersActivity.onCreate(OrdersActivity.java:75)
05-22 12:33:35.652: E/AndroidRuntime(786):  at android.app.Activity.performCreate(Activity.java:5104)
05-22 12:33:35.652: E/AndroidRuntime(786):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
05-22 12:33:35.652: E/AndroidRuntime(786):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
05-22 12:33:35.652: E/AndroidRuntime(786):  ... 11 more
public class OrdersActivity extends Activity {

TextView total, items ;
    String strMemberID,resultServer,MemberID;   

    ListView list;
    OrdersAdapter adapter;
    ArrayList<HashMap<String, String>> itemsList;


    /** Called when the activity is first created. */
    @SuppressWarnings("deprecation")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_orders);

        // Permission StrictMode
        if (android.os.Build.VERSION.SDK_INT > 9) {
            StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
            StrictMode.setThreadPolicy(policy);
            }
        showInfo();         

        itemsList = new ArrayList<HashMap<String, String>>();
        list = (ListView) findViewById(R.id.listView1);
        adapter = new OrdersAdapter(this, itemsList);
        list.setAdapter(adapter);



        if (isNetworkAvailable()) {
            new MyAsyncTask().execute();
        } else {

            AlertDialog alertDialog = new AlertDialog.Builder(OrdersActivity.this).create();
            alertDialog.setMessage("The Internet connection appears to be offline.");
            alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {

                }
            });
            alertDialog.show();
        }
    }

    public void showInfo()
    {
            total = (TextView)findViewById(R.id.txtTotalAmount);
            items = (TextView)findViewById(R.id.txtItemDetails);

            String url = "http://172.16.0.4/res/order_fetch.php";
            Intent intent= getIntent();
            MemberID = intent.getStringExtra("MemberID");
            List<NameValuePair> params = new ArrayList<NameValuePair>();
            params.add(new BasicNameValuePair("sMemberID", MemberID));
            resultServer  = getHttpPost(url,params);

            String strTotal = "";
            String strItems = "";


            JSONObject c;
            try {
            c = new JSONObject(resultServer);
            strTotal = c.getString("TotalAmount");              
            strItems = c.getString("ItemDetails");

            if(!strMemberID.equals(""))
            {                   
                total.setText(strTotal);
                items.setText(strItems);                
            }
            else
            {               
                total.setText("-");
                items.setText("-");
            }
            } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            }       
    }       

        public String getHttpPost(String url,List<NameValuePair> params) {
            StringBuilder str = new StringBuilder();
            HttpClient client = new DefaultHttpClient();
            HttpPost httpPost = new HttpPost(url);

        try {
            httpPost.setEntity(new UrlEncodedFormEntity(params));
            HttpResponse response = client.execute(httpPost);
            StatusLine statusLine = response.getStatusLine();
            int statusCode = statusLine.getStatusCode();
            if (statusCode == 200) { // Status OK
                HttpEntity entity = response.getEntity();
                InputStream content = entity.getContent();
                BufferedReader reader = new BufferedReader(new InputStreamReader(content));
                String line;
                while ((line = reader.readLine()) != null) {
                    str.append(line);
                }
            } else {
                Log.e("Log", "Failed to download result..");
            }
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return str.toString();
    }

    private boolean isNetworkAvailable() {
        ConnectivityManager cm = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
        NetworkInfo info = cm.getActiveNetworkInfo();
        return (info != null);
    }

    class MyAsyncTask extends
            AsyncTask<String, Integer, ArrayList<HashMap<String, String>>> {
        private ProgressDialog progressDialog = new ProgressDialog(
                OrdersActivity.this);

        @Override
        protected void onPreExecute() {
            progressDialog.setMessage("Loading, Please wait.....");
            progressDialog.show();
        }

        @Override
        protected ArrayList<HashMap<String, String>> doInBackground(
                String... params) {
            // TODO Auto-generated method stub
            return null;
        }


        @Override
        protected void onPostExecute(ArrayList<HashMap<String, String>> result) {
            list = (ListView) findViewById(R.id.listView1);
            adapter = new OrdersAdapter(OrdersActivity.this, itemsList);
            list.setAdapter(adapter);

            this.progressDialog.dismiss();
            list.setOnItemClickListener(new OnItemClickListener() {

                public void onItemClick(AdapterView<?> parent, View view,
                        int position, long id) {

                }

            });

        }
    }
}
public class OrdersAdapter extends BaseAdapter {

    private Activity activity;
    private ArrayList<HashMap<String, String>> data;
    private static LayoutInflater inflater=null;
    String strName,strMemberID ;

    public OrdersAdapter(Activity a, ArrayList<HashMap<String, String>> d) {
        activity = a;
        data=d;
        inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }

    public int getCount() {
        return data.size();
    }

    public Object getItem(int position) {
        return position;
    }

    public long getItemId(int position) {
        return position;
    }

    public View getView(int position, View convertView, ViewGroup parent) {
        View vi=convertView;
        if(convertView==null)
            vi = inflater.inflate(R.layout.listrow_orders, null);

        TextView title = (TextView)vi.findViewById(R.id.txtTotalAmount); 
        TextView description = (TextView)vi.findViewById(R.id.txtItemDetails); 


        HashMap<String, String> item = new HashMap<String, String>();
        item = data.get(position);

        title.setText(item.get(strName));
        description.setText(strMemberID);
        return vi;
    }
}
公共类OrdersActivity扩展活动{
TextView总计,个项目;
字符串strMemberID、resultServer、MemberID;
列表视图列表;
OrdersAdapter适配器;
ArrayList项目列表;
/**在首次创建活动时调用*/
@抑制警告(“弃用”)
@凌驾
创建时受保护的void(Bundle savedInstanceState){
//TODO自动生成的方法存根
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_orders);
//权限限制模式
如果(android.os.Build.VERSION.SDK_INT>9){
StrictMode.ThreadPolicy policy=新建StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(策略);
}
showInfo();
itemsList=新的ArrayList();
列表=(ListView)findViewById(R.id.listView1);
适配器=新的OrdersAdapter(此,itemsList);
list.setAdapter(适配器);
if(isNetworkAvailable()){
新建MyAsyncTask().execute();
}否则{
AlertDialog AlertDialog=新建AlertDialog.Builder(OrdersActivity.this).create();
alertDialog.setMessage(“Internet连接似乎处于脱机状态”);
alertDialog.setButton(“确定”,新的DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog,int which){
}
});
alertDialog.show();
}
}
public void showInfo()
{
总计=(TextView)findViewById(R.id.txtTotalAmount);
items=(TextView)findViewById(R.id.txtItemDetails);
字符串url=”http://172.16.0.4/res/order_fetch.php";
Intent=getIntent();
MemberID=intent.getStringExtra(“MemberID”);
List params=new ArrayList();
添加(新的BasicNameValuePair(“sMemberID”,MemberID));
resultServer=getHttpPost(url,参数);
字符串strTotal=“”;
字符串strItems=“”;
JSONObject c;
试一试{
c=新的JSONObject(resultServer);
strTotal=c.getString(“TotalAmount”);
strItems=c.getString(“ItemDetails”);
如果(!strMemberID.equals(“”)
{                   
总计.setText(strTotal);
items.setText(strItems);
}
其他的
{               
总计。setText(“-”);
项目。setText(“-”);
}
}捕获(JSONException e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}       
}       
公共字符串getHttpPost(字符串url,列表参数){
StringBuilder str=新的StringBuilder();
HttpClient=new DefaultHttpClient();
HttpPost HttpPost=新的HttpPost(url);
试一试{
setEntity(新的UrlEncodedFormEntity(参数));
HttpResponse response=client.execute(httpPost);
StatusLine StatusLine=response.getStatusLine();
int statusCode=statusLine.getStatusCode();
如果(statusCode==200){//状态正常
HttpEntity=response.getEntity();
InputStream内容=entity.getContent();
BufferedReader=新的BufferedReader(新的InputStreamReader(内容));
弦线;
而((line=reader.readLine())!=null){
str.append(行);
}
}否则{
Log.e(“日志”,“下载结果失败…”);
}
}捕获(客户端协议例外e){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
return str.toString();
}
专用布尔值isNetworkAvailable(){
ConnectivityManager cm=(ConnectivityManager)getSystemService(CONNECTIVITY_服务);
NetworkInfo=cm.getActiveNetworkInfo();
返回(信息!=null);
}
类MyAsyncTask扩展
异步任务{
private ProgressDialog ProgressDialog=新建ProgressDialog(
OrdersActivity.this);
@凌驾
受保护的void onPreExecute(){
setMessage(“正在加载,请稍候…”);
progressDialog.show();
}
@凌驾
受保护的ArrayList doInBackground(
字符串…参数){
//TODO自动生成的方法存根
返回null;
}
@凌驾
受保护的void onPostExecute(ArrayList结果){
列表=(ListView)findViewById(R.id.listView1);
adapter=newordersadapter(OrdersActivity.this,itemsList);
list.setAdapter(适配器);
此.progressDialog.discouse()文件;
list.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
}
});
}
}
}
OrdersAdapter.java:

05-22 12:33:35.652: E/AndroidRuntime(786): Caused by: java.lang.NullPointerException
05-22 12:33:35.652: E/AndroidRuntime(786):  at OrdersActivity.showInfo(OrdersActivity.java:121)
05-22 12:33:35.652: E/AndroidRuntime(786):  at OrdersActivity.onCreate(OrdersActivity.java:75)
05-22 12:33:35.652: E/AndroidRuntime(786):  at android.app.Activity.performCreate(Activity.java:5104)
05-22 12:33:35.652: E/AndroidRuntime(786):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
05-22 12:33:35.652: E/AndroidRuntime(786):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
05-22 12:33:35.652: E/AndroidRuntime(786):  ... 11 more
public class OrdersActivity extends Activity {

TextView total, items ;
    String strMemberID,resultServer,MemberID;   

    ListView list;
    OrdersAdapter adapter;
    ArrayList<HashMap<String, String>> itemsList;


    /** Called when the activity is first created. */
    @SuppressWarnings("deprecation")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_orders);

        // Permission StrictMode
        if (android.os.Build.VERSION.SDK_INT > 9) {
            StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
            StrictMode.setThreadPolicy(policy);
            }
        showInfo();         

        itemsList = new ArrayList<HashMap<String, String>>();
        list = (ListView) findViewById(R.id.listView1);
        adapter = new OrdersAdapter(this, itemsList);
        list.setAdapter(adapter);



        if (isNetworkAvailable()) {
            new MyAsyncTask().execute();
        } else {

            AlertDialog alertDialog = new AlertDialog.Builder(OrdersActivity.this).create();
            alertDialog.setMessage("The Internet connection appears to be offline.");
            alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {

                }
            });
            alertDialog.show();
        }
    }

    public void showInfo()
    {
            total = (TextView)findViewById(R.id.txtTotalAmount);
            items = (TextView)findViewById(R.id.txtItemDetails);

            String url = "http://172.16.0.4/res/order_fetch.php";
            Intent intent= getIntent();
            MemberID = intent.getStringExtra("MemberID");
            List<NameValuePair> params = new ArrayList<NameValuePair>();
            params.add(new BasicNameValuePair("sMemberID", MemberID));
            resultServer  = getHttpPost(url,params);

            String strTotal = "";
            String strItems = "";


            JSONObject c;
            try {
            c = new JSONObject(resultServer);
            strTotal = c.getString("TotalAmount");              
            strItems = c.getString("ItemDetails");

            if(!strMemberID.equals(""))
            {                   
                total.setText(strTotal);
                items.setText(strItems);                
            }
            else
            {               
                total.setText("-");
                items.setText("-");
            }
            } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            }       
    }       

        public String getHttpPost(String url,List<NameValuePair> params) {
            StringBuilder str = new StringBuilder();
            HttpClient client = new DefaultHttpClient();
            HttpPost httpPost = new HttpPost(url);

        try {
            httpPost.setEntity(new UrlEncodedFormEntity(params));
            HttpResponse response = client.execute(httpPost);
            StatusLine statusLine = response.getStatusLine();
            int statusCode = statusLine.getStatusCode();
            if (statusCode == 200) { // Status OK
                HttpEntity entity = response.getEntity();
                InputStream content = entity.getContent();
                BufferedReader reader = new BufferedReader(new InputStreamReader(content));
                String line;
                while ((line = reader.readLine()) != null) {
                    str.append(line);
                }
            } else {
                Log.e("Log", "Failed to download result..");
            }
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return str.toString();
    }

    private boolean isNetworkAvailable() {
        ConnectivityManager cm = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
        NetworkInfo info = cm.getActiveNetworkInfo();
        return (info != null);
    }

    class MyAsyncTask extends
            AsyncTask<String, Integer, ArrayList<HashMap<String, String>>> {
        private ProgressDialog progressDialog = new ProgressDialog(
                OrdersActivity.this);

        @Override
        protected void onPreExecute() {
            progressDialog.setMessage("Loading, Please wait.....");
            progressDialog.show();
        }

        @Override
        protected ArrayList<HashMap<String, String>> doInBackground(
                String... params) {
            // TODO Auto-generated method stub
            return null;
        }


        @Override
        protected void onPostExecute(ArrayList<HashMap<String, String>> result) {
            list = (ListView) findViewById(R.id.listView1);
            adapter = new OrdersAdapter(OrdersActivity.this, itemsList);
            list.setAdapter(adapter);

            this.progressDialog.dismiss();
            list.setOnItemClickListener(new OnItemClickListener() {

                public void onItemClick(AdapterView<?> parent, View view,
                        int position, long id) {

                }

            });

        }
    }
}
public class OrdersAdapter extends BaseAdapter {

    private Activity activity;
    private ArrayList<HashMap<String, String>> data;
    private static LayoutInflater inflater=null;
    String strName,strMemberID ;

    public OrdersAdapter(Activity a, ArrayList<HashMap<String, String>> d) {
        activity = a;
        data=d;
        inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }

    public int getCount() {
        return data.size();
    }

    public Object getItem(int position) {
        return position;
    }

    public long getItemId(int position) {
        return position;
    }

    public View getView(int position, View convertView, ViewGroup parent) {
        View vi=convertView;
        if(convertView==null)
            vi = inflater.inflate(R.layout.listrow_orders, null);

        TextView title = (TextView)vi.findViewById(R.id.txtTotalAmount); 
        TextView description = (TextView)vi.findViewById(R.id.txtItemDetails); 


        HashMap<String, String> item = new HashMap<String, String>();
        item = data.get(position);

        title.setText(item.get(strName));
        description.setText(strMemberID);
        return vi;
    }
}
公共类OrdersAdapter扩展BaseAdapter{
私人活动;
私有数组列表数据;
专用静态充气机=空;
字符串strName,strMemberID;
公共秩序适配器(A)