2015-07-04 2 views
-1

Мне нужно создать одно приложение для отчетов, в котором для правильного формата отчета адаптер используется для динамического создания макетов отчетов в виде пейджера-адаптера.Android Найти экземпляр ListView, созданный классом в представлении Pager

switch (index) { 
    case 0: 
     return new sfg(); 
    case 1: 
     return new Report1("1STREPORT"); 
    case 2: 
     return new Report1("2NDREPORT"); 
    case 3: 
     return new Report1("3RDREPORT"); 
    case 4: 
     // Movies fragment activity 
     return new Report1("4THREPORT"); 
    case 5: 
     return new Report1("5THREPORT"); 
    case 6: 
     return new Report1("Numbers"); 
    case 7: 
     return new report2("6THREPORT"); 
    default: 
     return null; 
} 

В макетной странице Report1 содержится две вещи: одна кнопка, а другая - вид списка.

Все отчеты отображаются одновременно.

Мне нужно изменить элемент ListView, когда я нажимаю кнопку «Button». Я попытался это:

public void btn_DetailedReport_Show(View view) { 

    FragmentActivity myActivity= (FragmentActivity)(view.getContext()); 

    ListView lst1 = (ListView) view.findViewById(R.id.lst_abc); // lst_abc is the list box Name 

но lst1 не в состоянии назвать это ListView. Я попытался использовать Tag также, как это было предложено в одном примере.

Как я могу решить эту проблему?

ответ

0

Если вы хотите получить доступ к ListView в фрагменте, то это должно быть сделано, как это ...

В вашей onCreateView

View rootView = inflater.inflate(R.layout.fragment_name, container, false); 
ListView lst1 = (ListView)rootView.findViewById(R.id.lst_abc); 
return rootView; 

вы можете объявить объект ListView в качестве глобальной переменной, а затем вы можете получить доступ к Это.

Причина в том, что вы не ищете listView на фрагменте, который вы просматриваете в окне кнопки.

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