2015-01-26 2 views
0

Я пытаюсь заполнить свой TableLayout некоторыми представлениями методом addView.Android TableLayout.addView() на самом деле не работает

Это то, что я пытаюсь сделать:

private void createNewTable(){ 

    tableLayout = (TableLayout) getView().findViewById(R.id.tableLayout1); 
    for(int i = 0; i < objectList.size(); i++){ 
      if(objectList.get(i).getType() == 0){ 
       tableLayout.addView(createLocationObjectInTable((LocationObject)objectList.get(i)), i); 
      } 
    } 
} 

и метод createObjectInList:

private View createLocationObjectInTable(LocationObject locObject) { 

    TableRow tr = new TableRow(getActivity()); 
    View v = LayoutInflater.from(getActivity()).inflate(R.layout.view_layout, tr, false); 

    TextView textViewCityName = (TextView) v.findViewById(R.id.textView_City_Name); 
    TextView textViewCityProvider = (TextView) v.findViewById(R.id.textView_City_Provider); 
    textViewCityName.setText(locObject.getTitle()); 
    textViewCityProvider.setText(locObject.getSubTitle()); 

    return v; 
} 

Но мнения не отображаются в TableLayout. Logcat не дает мне никаких сообщений об ошибке, и когда я пытаюсь сделать материал после строки

tableLayout.addView(createLocationObjectInTable((LocationObject)objectList.get(i)), i); 

ничего не случилось. Приложение просто ничего не делает после этой строки.

Надеюсь, кто-нибудь скажет мне свою ошибку?

+0

Если вы не возвращаться видом TableRow (Tr) от вас createLocationObjectInTable метода вместо надутых Посмотреть против? –

+0

Даже я возвращаю tr, вид не отображается. Я вызываю метод createNewtable() из AsyncTask, может быть, это вызвало некоторые проблемы? – RyuZz

ответ

0

Вы не добавляете свой вид в TableRow, вместо этого вы просто добавляете представление в TableLayout. Попробуйте это:

private View createLocationObjectInTable(LocationObject locObject) { 
    ... 
    textViewCityProvider.setText(locObject.getSubTitle()); 

    tr.addView(v); 
    return tr; 

}

+0

Я пробовал это, но после того, как я возвращаю tr, TableLayout все еще не показывает никакого представления. Код после tableLayout.addView также не работает, приложение просто останавливается. – RyuZz

+0

@Sascha_ вы добавляете свое представление в TableRow ('tr.addView (v);')? И что означает «просто останавливается»? Активность не начинается с ошибок в LogCat? – fRoStBiT

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