2013-03-24 44 views
1

我想在android中使用数据库创建gridview,但我得到“构造函数ArrayAdapter(启动,int,ArrayList)未定义”错误“ Arrayadapter适配器=新Arrayadapter ..”行....我的代码是下面给出......请帮我解决它.....在此先感谢错误:构造函数ArrayAdapter <String>(Startup,int,ArrayList <Contact>)未定义

Startup.java活动文件

public class Startup extends Activity { 
    private GridView gridView; 
    final static ArrayList<Contact> timetable = new ArrayList<Contact>(); 

    String response; 
    WebAPIRequest web = new WebAPIRequest(); 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    // setContentView(R.layout.main); 
    setContentView(R.layout.main); 

    String url = "http://192.168.0.101/attendance/webservice/gettingTodaysLectures.php"; 
    new setd().execute(url); 
} 

public void displayTimeTable(String response) { 

    String getAllData[] = response.split("<br>"); 

    Contact displaylec; 
    for (int i = 0; i < getAllData.length - 1; i++) { 
     String tempdata[] = getAllData[i].split(":"); 
     // tmepdata[0]=start time // tempdata[1]=end time // 
     // tempdata[2]=semester 
     // tempdata[3]=department // tempdata[4]=division // 
     // tempdata[5]=subject 
     // tempdata[6]=type // tempdata[7]=batch // tempdata[8]=classno 
     displaylec = new Contact(tempdata[0], tempdata[1], tempdata[2], 
       tempdata[3], tempdata[4], tempdata[5], tempdata[6], 
       tempdata[7], tempdata[8]); 

     timetable.add(displaylec); 
     Log.i("All sem id", tempdata[0] + ":" + tempdata[1] + ":" 
       + tempdata[2] + ":" + tempdata[3] + ":" + tempdata[4] + ":" 
       + tempdata[5] + ":" + tempdata[6] + ":" + tempdata[7] + ":" 
       + tempdata[8]); 
     Toast.makeText(getApplicationContext(), tempdata[0], 1); 
    } 

    gridView = (GridView) findViewById(R.id.gridView1); 
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
      android.R.layout.simple_list_item_1, timetable); 

    gridView.setAdapter(adapter); 

    gridView.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View v, 
       int position, long id) { 
      Toast.makeText(getApplicationContext(), 
        ((TextView) v).getText(), Toast.LENGTH_SHORT).show(); 
     } 
    }); 

} 

public class setd extends AsyncTask<String, Void, Void> { 
    ProgressDialog pd; 

    @Override 
    protected void onPreExecute() { 
     // TODO Auto-generated method stub 
     super.onPreExecute(); 
     // pd=new ProgressDialog(getApplicationContext()); 
     // pd.setTitle("Loading ....."); 
     // pd.setMessage("Inserting data"); 
     Log.i("ddd", "dd"); 
     pd = ProgressDialog.show(Startup.this, "Loading .....", 
       "getting data"); 
    } 

    @Override 
    protected Void doInBackground(String... params) { 
     // TODO Auto-generated method stub 
     response = web.performGet(params[0]); 
     Log.i("response", response); 
     Log.i("response Display Extraactivity", response); 
     return null; 
    } 

    @Override 
    protected void onPostExecute(Void result) { 

     // TODO Auto-generated method stub 
     super.onPostExecute(result); 
     pd.cancel(); 
     // Main Logic Write here 
     Log.i("RESPONSE : ", response.toString()); 
     displayTimeTable(response.toString()); 
    } 
} 
+0

尝试在初始化 – 2013-03-24 10:05:47

+0

传球,而不是这个情境变量有没有人帮你吗? – Korcholis 2013-03-25 09:29:33

回答

0

问题是,您正在尝试将Contact对象的列表传递给期望String列表的构造函数。 参见Android文档在这里:generic ArrayList constructor

你可以解决这个醚:

  • 创建自己的自定义适配器,需要一个联系对象,并把它传递给意见,这里是一个很好的教程为:Custom ArrayAdapter
  • 您可以将您的Contact对象转换为String equivelent并将新生成的列表传递给ArrayAdapter,代码应该如下所示。

    List<String> stringList = new ArrayList<String>(); 
    for(Contact object : timetable){ 
        stringList.put("new object " + object.toString()); 
    } 
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
        android.R.layout.simple_list_item_1, stringList); 
    
+0

谢谢......它帮助我解决了错误。 – user2203072 2015-06-04 12:26:52

0

您应该使用ArrayAdapter<Contact>(Startup, int, ArrayList<Contact>)来制作ArrayAdapter,因为ArrayAdapter包含wh在内部ArrayList

相关问题