2016-06-23 3 views
-1

У меня есть Fragment.java и его XML. В XML я положил ListView и хочу обновить ListView в Fragment и добавить String. Я пытаюсь сделать пользовательский адаптер. Когда я запускаю ListView в Activity с пользовательским адаптером, все работает отлично, но когда я помещаю тот же код в Fragment, ничего не происходит. Я использую EventBus3.Как реализовать ListView в фрагменте в Android

Это моя активность отправить событие

EventBus.getDefault().post(new SendDataHelper(nameOfItem[myItemInt])); 

Это мой фрагмент:

public class MyOrderFragment extends Fragment { 
TextView name; 
ListView listOrder; 
private Context context; 
List<cources> collegeList; 

public MyOrderFragment() { 
    // Required empty public constructor 
} 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    EventBus.getDefault().register(this); 


} 
@Subscribe 
public void onMessageEvent(SendDataHelper event){ 
    Toast.makeText(getActivity(), event.getText(), Toast.LENGTH_SHORT).show(); 
    String text = event.getText(); 
    name.setText(text); 
    cources college; 
    collegeList = new ArrayList<cources>(); 
    college = new cources(); 
    college.name = "sharon"; 
    collegeList.add(college); 
    listOrder.setVisibility(View.VISIBLE); 
    ListAdapter adapter = new ListAdapter(collegeList, context); 
    listOrder.setAdapter(adapter); 
} 
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View rootView = inflater.inflate(R.layout.my_order_fragment, container, false); 
    name = (TextView) rootView.findViewById(R.id.textView); 
    listOrder = (ListView) rootView.findViewById(R.id.listOrder); 
    return rootView; 
} 
} 

Это мой адаптер

public class ListAdapter extends BaseAdapter 
{ 
Context context; 
List<cources> valueList; 

public ListAdapter(List<cources> listValue, Context context) 
{ 
    this.context = context; 
    this.valueList = listValue; 
} 

@Override 
public int getCount() 
{ 
    return this.valueList.size(); 
} 

@Override 
public Object getItem(int position) 
{ 
    return this.valueList.get(position); 
} 

@Override 
public long getItemId(int position) 
{ 
    return position; 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) 
{ 
    ViewItem viewItem = null; 
    if(convertView == null) 
    { 
     viewItem = new ViewItem(); 
     LayoutInflater layoutInfiater = (LayoutInflater)this.context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE); 
     //LayoutInflater layoutInfiater = LayoutInflater.from(context); 
     convertView = layoutInfiater.inflate(R.layout.list_adapter_view, null); 

     viewItem.txtNamePlanche = (TextView)convertView.findViewById(R.id.Tx_name_planche); 
     viewItem.txtPriceBaget = (TextView)convertView.findViewById(R.id.Tx_price_baget); 
     viewItem.txtPricePlate = (TextView)convertView.findViewById(R.id.Tx_price_plate); 
     convertView.setTag(viewItem); 
    } 
    else 
    { 
     viewItem = (ViewItem) convertView.getTag(); 
    } 

    viewItem.txtNamePlanche.setText(valueList.get(position).name); 
    viewItem.txtPriceBaget.setText(valueList.get(position).price_baget); 
    viewItem.txtPricePlate.setText(valueList.get(position).price_plate); 
    return convertView; 
} 
} 

Это мой ItemView

import android.widget.TextView; 

class ViewItem 
{ 
TextView txtNamePlanche; 
TextView txtPricePlate; 
TextView txtPriceBaget; 
} 

Это курсы:

public class cources 
{ 
public String name; 
public String price_plate; 
public String price_baget; 
} 
+0

Вы получаете ошибку? Или listView просто ничего не заселяет? – SillyFidget

+0

Nothings бывает нет ошибок – sharon2469

+0

Не могли бы вы высказать полный код? У меня есть несколько вопросов, но было бы проще просто посмотреть – SillyFidget

ответ

0

Изменение распространяется на фрагмент проходит ListFragment

+0

Я пробовал это раньше, но фрагмент дает мне ошибка в OnCreateView, и если удалить этот класс, приложение будет аварийно завершено. Это потому, что я использую Material Design с вкладками, и когда MainActivity создает вкладку и его фрагмент, он делает это так: MainActivity.ViewPagerAdapter adapter = new MainActivity.ViewPagerAdapter (getSupportFragmentManager()); adapter.addFragment (новый MainFragment(), getResources(). GetString (R.string.Main)); – sharon2469

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