2013-03-24 2 views
1

Я хочу создать gridview в android, который использует базу данных, но я получаю «Конструктор ArrayAdapter (Startup, 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

Попробуйте передавая переменную контекста вместо этого при инициализации –

+0

ли кто-нибудь помочь? – Korcholis

ответ

0

Проблема заключается в том, что вы пытаетесь передать список объектов Contact в конструктор, ожидающий списка String. См андроида документации здесь: 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

0

Вы должны построить ArrayAdapter с ArrayAdapter<Contact>(Startup, int, ArrayList<Contact>), так как ArrayAdapter содержит шаблон wh at at ArrayList

Смежные вопросы