2014-09-02 94 views
0

我真的很陌生,android编程,实际上编程本身。 我正在创建一个具有选项卡的应用程序,并且在其中一个选项卡中,我想在其中添加listview。 我迷路了卡,请告知android创建listview内片段

public class TabActivityQueue extends Fragment { 

@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
     // Inflate the layout for this fragment 
     View V = inflater.inflate(R.layout.activity_tab_activity_queue, container, false); 
     populateListView(); 
     return V; 
    } 
private void populateListView() { 
    // Create list of items 
    String[] myItems = {"Blue", "Green", "Purple", "Red"}; // Build Adapter 
    // TODO: CHANGE THE [[ to a less than, ]] to greater than. 
    ArrayAdapter<String> adapter = new ArrayAdapter<String> (TabActivityQueue,R.layout.da_items, myItems); 
    ListView list = (ListView) findViewById(R.id.listview1); 
    list.setAdapter(adapter); 
}} 
+0

@Aniqi u能提供其中u卡? – 2014-09-02 07:45:18

+0

@Aniqi去这个链接它可能会解决http://stackoverflow.com/questions/22512833/create-listview-in-fragment-android。也看看这个http://www.mysamplecode.com/2012/08/android-fragment-example.html – 2014-09-02 07:47:49

回答

1

更改您的populateListView()适配器,此:

ArrayAdapter<String> adapter = new ArrayAdapter<String> (getActivity(),R.layout.da_items, myItems); 

这个问题可能是错误的上下文。当找你使用Fragment,那么你需要使用getActivity()作为Context

+0

这适用于我。谢谢 – 2014-09-02 08:27:49

+0

@安琪张如果它适合你,那么请接受我的回答。 – 2014-09-02 14:33:55

0
​​

ArrayAdapter<String> adapter = new ArrayAdapter<String> (getActivity(),R.layout.da_items, myItems); 
0

需要改变某些事情:

1) ListView list = (ListView) getView().findViewById(R.id.listview1); 

2) ArrayAdapter<String> adapter = new ArrayAdapter<String> (getActivity(),R.layout.da_items, myItems); 

Note

-1

我认为你应该创建一个Adapter类。 这是做的工作,&你可以重复使用它。

这里良好的政党成员: http://www.vogella.com/tutorials/AndroidListView/article.html

编辑

嗯,这是该适配器例如:

import android.content.Context; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ArrayAdapter; 
import android.widget.ImageView; 
import android.widget.TextView; 

public class MySimpleArrayAdapter extends ArrayAdapter<String> { 
    private final Context context; 
    private final String[] values; 

    public MySimpleArrayAdapter(Context context, String[] values) { 
    super(context, R.layout.rowlayout, values); 
    this.context = context; 
    this.values = values; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
    LayoutInflater inflater = (LayoutInflater) context 
     .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View rowView = inflater.inflate(R.layout.rowlayout, parent, false); 
    TextView textView = (TextView) rowView.findViewById(R.id.label); 
    ImageView imageView = (ImageView) rowView.findViewById(R.id.icon); 
    textView.setText(values[position]); 
    // change the icon for Windows and iPhone 
    String s = values[position]; 
    if (s.startsWith("iPhone")) { 
     imageView.setImageResource(R.drawable.no); 
    } else { 
     imageView.setImageResource(R.drawable.ok); 
    } 

    return rowView; 
    } 
} 
+0

我编辑了我的答案,但此链接来自Vogella WebSite,链接不会失效;) – Sidd 2014-09-02 09:25:39