简体   繁体   中英

How do ListView in a Fragment?

I lost a lot of hours with this, I need put images in a listView inside a Fragment,but how can do it ?

public class First_fragment extends Fragment {


public View onCreateView(LayoutInflater inflater,
                         @Nullable ViewGroup container,
                         @Nullable Bundle savedInstanceState) {

    View v = inflater.inflate(R.layout.activity_profesorado,container,false);

    ListView listView = (ListView) v.findViewById(R.id.mymenu);

    ArrayAdapter<String> listViewAdapter = new ArrayAdapter<String> (getActivity(),android.R.layout.simple_list_item_1, menuItems;

    listView.setAdapter(listViewAdapter);


    return v;

I have 10 images, but i need create a listview with them. I don't know. I know with text but in this situation i dont have any idea. Any example?

您需要一个自定义适配器,并且行的“自定义”布局将添加到列表视图中。

Use CustomAdapter

CustomAdapter listViewAdapter = new CustomAdapter(getActivity(), arrImages);

CustomAdapter.java

public class CustomAdapter extends BaseAdapter{   
    Context context;
 int [] imageId;
      private LayoutInflater inflater=null;
    public CustomAdapter(MainActivity mainActivity, int[] prgmImages) {
        context=mainActivity;
        imageId=prgmImages;
         inflater = ( LayoutInflater )context.
                 getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }
    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return imageId.length;
    }

    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return position;
    }

    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return position;
    }

    public class Holder
    {
        ImageView img;
    }
    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        Holder holder=new Holder();
        View rowView;       
             rowView = inflater.inflate(R.layout.program_list, null);
             holder.img=(ImageView) rowView.findViewById(R.id.imageView1);       
         holder.img.setImageResource(imageId[position]);         
         rowView.setOnClickListener(new OnClickListener() {            
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Toast.makeText(context, "You Clicked "+result[position], Toast.LENGTH_LONG).show();
            }
        });   
        return rowView;
    }

} 

program_list.xml

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_gravity="center"
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:src="@drawable/ic_launcher" />
</LinearLayout> 

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM