2016-06-23 22 views
-1

Ich habe Fragment.java und seine XML. In XML setze ich ListView und ich möchte die ListView in Fragment aktualisieren und einige String hinzufügen. Ich versuche, einen benutzerdefinierten Adapter zu machen. Wenn ich die ListView in Activity mit benutzerdefinierten Adapter laufen alle funktioniert gut, aber wenn ich den gleichen Code in Fragment setzen passiert nichts. Ich benutze EventBus3.Wie implementiert man eine ListView in einem Fragment in Android

Dies ist meine Aktivität Ereignis senden

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

Das ist mein Fragment ist:

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; 
} 
} 

Das ist mein Adapter

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; 
} 
} 

Das ist mein ItemView ist
import android.widget.TextView; 

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

Dies ist cources:

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

zu erstreckt werden, um eine Störung zu erhalten? Oder füllt das ListView gerade nichts? – SillyFidget

+0

Nothings passiert keine Fehler – sharon2469

+0

Können Sie bitte den vollständigen Code posten? Ich habe ein paar Fragen, aber es wäre einfacher, nur zu sehen – SillyFidget

Antwort

0

ändern Fragment erweitert Sie ListFragment

+0

Ich versuchte es vorher, aber das Fragment geben Sie mir Fehler in OnCreateView und wenn diese Klasse löschen die App stürzt ab. Es liegt daran, dass ich Material Design mit Tabs benutze und wenn MainActivity Tab und sein Fragment erstellt, macht er das so: MainActivity.ViewPagerAdapter adapter = new MainActivity.ViewPagerAdapter (getSupportFragmentManager()); adapter.addFragment (neues MainFragment(), getResources(). GetString (R.string.Main)); – sharon2469

Verwandte Themen