2016-10-07 2 views
0

Я искал решения в google, следуя нескольким учебникам, а также проверял ответ здесь перед загрузкой.пользовательский ListView в диалоговом фрагменте

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

Вот мои коды:
Диалог Фрагмент Код:

public class MonthDialogFragment extends DialogFragment { 
private Context context; 

private String[] monthsArr = {"Jan", "Feb", "Mar", "Apr", 
     "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; 

public Dialog onCreateDialog(Bundle savedInstanceState) { 
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
    View view = LayoutInflater.from(context).inflate(R.layout.month_fragment_item, null); 
    ListView listView = (ListView) view.findViewById(R.id.month_fragment_list_view); 
    MonthItemAdapter adapter = new MonthItemAdapter(context, monthsArr); 
    listView.setAdapter(adapter); 
    builder.setView(view); 
    return builder.create(); 
} 

@Override 
public void onAttach(Activity activity) { 
    super.onAttach(activity); 
    context = activity; 
} 

Это список адаптер:

public class MonthItemAdapter extends ArrayAdapter{ 
private Context context; 
private String[] months; 
private TextView monthName; 

public MonthItemAdapter (Context context, String[] months){ 
    super(context, R.layout.month_list_item); 
    this.context = context; 
    this.months = months; 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    if(convertView == null){ 
     convertView = LayoutInflater.from(context).inflate(R.layout.month_list_item,null); 
     monthName = (TextView) convertView.findViewById(R.id.month_list_item_text_view); 
     convertView.setTag(monthName); 
    }else{ 
     monthName = (TextView) convertView.getTag(); 
    } 
    monthName.setText(months[position]); 
    return convertView; 
} 

И это, как я вызвать диалоговое фрагмент:

@Override 
public void onClick(View view) { 
    if(view.getId() == etMonth.getId()) { 
     monthFragment.show(getFragmentManager(), ""); 
    } 
} 

ответ

0

Убедитесь, что вы реализовали метод getCount()

@Override 
    public int getCount() { 
     return months.length; 
    } 
+0

Для чего это необходимо? –

+0

Вам просто нужно реализовать этот метод в своем классе адаптера, чтобы сообщить адаптеру о количестве нужных вам элементов в списке – Dipika

+0

@shay plz отметьте его принятым, если он разрешает проблему – Dipika

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