Android setAdapter(适配器)上的应用程序崩溃

Android setAdapter(适配器)上的应用程序崩溃,android,mysql,json,listview,sharedpreferences,Android,Mysql,Json,Listview,Sharedpreferences,我正在开发一个android应用程序,其中我正在将mysql数据库中的动态数据显示到活动的ListView中。但是我在列表中得到了错误;和应用程序崩溃。这是在我的活动中使用共享首选项后发生的。在活动中使用共享首选项之前,它工作正常,我在listView中获取数据。但现在我的应用程序崩溃了。我不知道到底是不是因为共同的偏好。。!!!请让我知道我哪里做错了。。。!!! 这是我的代码: import java.io.IOException; import java.util.ArrayList; im

我正在开发一个android应用程序,其中我正在将mysql数据库中的动态数据显示到活动的ListView中。但是我在列表中得到了错误;和应用程序崩溃。这是在我的活动中使用共享首选项后发生的。在活动中使用共享首选项之前,它工作正常,我在listView中获取数据。但现在我的应用程序崩溃了。我不知道到底是不是因为共同的偏好。。!!!请让我知道我哪里做错了。。。!!! 这是我的代码:

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.StrictMode;
import android.util.Log;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;

public class Welcome extends Activity implements OnClickListener 
{
    TextView text,t1;
    Button b1,b2,b3;
    String CompName,CompID,Uname;
    DatabaseHandler db;

    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_welcome);

        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);

        db=new DatabaseHandler(getApplicationContext());

        List<Name> name=db.getAllNames();
        Name namee=name.get(0);
        Uname=namee.getUsername();
        t1.setText("Hello "+Uname);

        text=(TextView)findViewById(R.id.textView3);
        t1=(TextView)findViewById(R.id.textView1);

        connect();
    }
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event)  {
        if ( keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {

            onBackPressed();
        }

        return super.onKeyDown(keyCode, event);
    }
    @Override
    public void onBackPressed() {

        return;
    }


    public void connect() 
    {
        String data;
        List<String> r = new ArrayList<String>();
        ArrayAdapter<String>adapter=new ArrayAdapter<String>(getApplicationContext(),android.R.layout.simple_list_item_1,r);
        ListView list=(ListView)findViewById(R.id.list);
        try 
        {
                DefaultHttpClient client = new DefaultHttpClient();
                HttpGet request = new HttpGet("http://demo.example.com/tapme/Retrive.php");
                HttpResponse response = client.execute(request);
                HttpEntity entity=response.getEntity();
                data=EntityUtils.toString(entity);
                Log.e("STRING", data);

                try 
                {
                   JSONArray json=new JSONArray(data);
                   for(int i=0;i<json.length(); i++)
                   {
                        JSONObject obj=json.getJSONObject(i);

                        CompName=obj.getString("fldCompName");
                        CompID=obj.getString("fldCompID");

                        Log.e("STRING", CompName);
                        Log.e("STRING",CompID);

                        r.add(CompName);
                        //text.setText(CompName);
                        //r.add(CompID);
                        list.setAdapter(adapter);

                       list.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() 
                        {
                            @Override
                            public void onItemClick(AdapterView<?> parent,View view, int position, long id) 
                            {
                                Intent i1=new Intent(Welcome.this,ChatActivity.class);
                                //i1.putExtra("CompName", CompName);
                                startActivity(i1);
                            }
                        });
                   }
                } 
                catch (JSONException e) 
                {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            } catch (ClientProtocolException e) {
                Log.d("HTTPCLIENT", e.getLocalizedMessage());
            } catch (IOException e) {
                Log.d("HTTPCLIENT", e.getLocalizedMessage());
            }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu)
    {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.welcome, menu);
        return true;
    }


    @Override
    public void onClick(View v) 
    {
        // TODO Auto-generated method stub
        if(v==b1)
        {
            Intent i1=new Intent(Welcome.this,Category1.class);
            startActivity(i1);
        }
    }
}
import java.io.IOException;
导入java.util.ArrayList;
导入java.util.List;
导入org.apache.http.HttpEntity;
导入org.apache.http.HttpResponse;
导入org.apache.http.client.ClientProtocolException;
导入org.apache.http.client.methods.HttpGet;
导入org.apache.http.impl.client.DefaultHttpClient;
导入org.apache.http.util.EntityUtils;
导入org.json.JSONArray;
导入org.json.JSONException;
导入org.json.JSONObject;
导入android.app.Activity;
导入android.content.Intent;
导入android.os.Bundle;
导入android.os.StrictMode;
导入android.util.Log;
导入android.view.KeyEvent;
导入android.view.Menu;
导入android.view.view;
导入android.view.view.OnClickListener;
导入android.widget.AdapterView;
导入android.widget.ArrayAdapter;
导入android.widget.Button;
导入android.widget.ListView;
导入android.widget.TextView;
公共类欢迎扩展活动实现OnClickListener
{
文本视图文本,t1;
按钮b1、b2、b3;
字符串CompName、CompID、Uname;
数据库处理程序数据库;
@凌驾
创建时受保护的void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_welcome);
StrictMode.ThreadPolicy policy=新建StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(策略);
db=新的DatabaseHandler(getApplicationContext());
List name=db.getAllNames();
Name Name=Name.get(0);
Uname=namee.getUsername();
t1.setText(“你好”+Uname);
text=(TextView)findViewById(R.id.textView3);
t1=(TextView)findViewById(R.id.textView1);
connect();
}
@凌驾
公共布尔onKeyDown(int-keyCode,KeyEvent事件){
if(keyCode==KeyEvent.keyCode\u BACK&&event.getRepeatCount()==0){
onBackPressed();
}
返回super.onKeyDown(keyCode,event);
}
@凌驾
public void onBackPressed(){
返回;
}
公共void connect()
{
字符串数据;
列表r=新的ArrayList();
ArrayAdapteradapter=新的ArrayAdapter(getApplicationContext(),android.R.layout.simple\u list\u item\u 1,R);
ListView列表=(ListView)findViewById(R.id.list);
尝试
{
DefaultHttpClient=新的DefaultHttpClient();
HttpGet请求=新建HttpGet(“http://demo.example.com/tapme/Retrive.php");
HttpResponse response=client.execute(请求);
HttpEntity=response.getEntity();
数据=EntityUtils.toString(实体);
Log.e(“字符串”,数据);
尝试
{
JSONArray json=新的JSONArray(数据);
对于(inti=0;i您在初始化
t1
之前设置了
t1.setText(“Hello”+Uname”);
。因此更改

 t1.setText("Hello "+Uname);
 text=(TextView)findViewById(R.id.textView3);
 t1=(TextView)findViewById(R.id.textView1);


要进行网络操作,请使用

您的应用程序崩溃NetworkOnMainThreadException@blackbelt它不是主线程上的网络…我说当我使用共享首选项时,我会出错…否则它工作正常并显示listview。很抱歉,我没有看到您正在更改StrictMode策略。仍然是错误的做法
    text=(TextView)findViewById(R.id.textView3);
    t1=(TextView)findViewById(R.id.textView1);
    t1.setText("Hello "+Uname);