2015-11-03 62 views
0

首先对不起我的英语不好,我是新到Android我的列表视图onitemclickListner是行不通的任何一个,请帮助我是我做错了,请帮我解决这个OnItemClikListner不在列表视图工作

java类

public class Shoping extends Fragment{ 


private GridviewAdapter mAdapter; 
private ArrayList<String> listCountry; 
private ArrayList<Integer> listFlag; 

private ListView listview; 


@Override 

public View onCreateView(LayoutInflater inflater, ViewGroup container, 

     Bundle savedInstanceState) { 

    View rootView = inflater.inflate(R.layout.shoping_fragment, container, false); 

    prepareList();   
    mAdapter = new GridviewAdapter(getActivity(), listCountry, listFlag); 
    //Missed code to here 
    listview = (ListView)rootView. findViewById(R.id.card_listView); 
    listview.setAdapter(mAdapter); 


    listview.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> parent, View view, 
       int position, long id) { 
      // TODO Auto-generated method stub 


      switch(position){ 



      case 0: 
       Intent one=new Intent(getActivity(),Flipkart.class); 
       startActivity(one); 
       break; 
      case 1: 
       Intent two=new Intent(getActivity(),Amazon.class); 
       startActivity(two); 
       break; 
      case 2: 
       Intent three=new Intent(getActivity(),Snapdeal.class); 
       startActivity(three); 
       break; 
      case 3: 
       Intent four=new Intent(getActivity(),Shopclues.class); 
       startActivity(four); 
       break; 




      } 

     } 


    }); 





    return rootView; 

} 



public void prepareList() 
{ 
    listCountry = new ArrayList<String>(); 

    listCountry.add("123Telugu.com"); 
    listCountry.add("GreatAndhra.com"); 
    listCountry.add("Tupaki.com"); 
    listCountry.add("A1Telugu.com"); 



    listFlag = new ArrayList<Integer>(); 
    listFlag.add(R.drawable.flipkart); 
    listFlag.add(R.drawable.flipkart); 
    listFlag.add(R.drawable.flipkart); 
    listFlag.add(R.drawable.flipkart); 

} 

这里我下面的XML布局

我的XML

android:orientation="vertical" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:background="#e2e4fe"> 

<ListView 
    android:id="@+id/card_listView" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="6dp" 
    android:layout_marginLeft="6dp" 
    android:layout_marginRight="6dp" 


    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    android:listSelector="@android:color/transparent" 
    android:cacheColorHint="@android:color/transparent" 
    android:divider="@null" 
    android:dividerHeight="5dp" /> 

GridAdapter

public class GridviewAdapter extends BaseAdapter{ 

private ArrayList<String> listCountry; 
private ArrayList<Integer> listFlag; 
private LayoutInflater inflater; 
private static Context mcontext; 


public GridviewAdapter(Context context,ArrayList<String> listCountry, ArrayList<Integer> listFlag) { 
    super(); 
    this.listCountry = listCountry; 
    this.listFlag = listFlag; 
    this.mcontext = context; 
} 


@Override 
public int getCount() { 
    // TODO Auto-generated method stub 
    return listCountry.size(); 
} 

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

@Override 
public long getItemId(int position) { 
    // TODO Auto-generated method stub 
    return 0; 
} 
public static class ViewHolder 
{ 
    public ImageView imgViewFlag; 
    public TextView txtViewTitle; 
} 
@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    // TODO Auto-generated method stub 
    ViewHolder view; 


    if(convertView==null) 
    { 
     inflater = (LayoutInflater)mcontext.getSystemService(Activity.LAYOUT_INFLATER_SERVICE); 
     view = new ViewHolder(); 
     convertView = inflater.inflate(R.layout.fragment_layout_design, null); 

     view.txtViewTitle = (TextView) convertView.findViewById(R.id.tv_nature); 
     view.imgViewFlag = (ImageView) convertView.findViewById(R.id.img_thumbnail); 

     convertView.setTag(view); 
    } 
    else 
    { 
     view = (ViewHolder) convertView.getTag(); 
    } 

    view.txtViewTitle.setText(listCountry.get(position)); 
    view.imgViewFlag.setImageResource(listFlag.get(position)); 

    return convertView; 
} 

}

+0

你会得到任何错误? –

+0

不,但onclick不工作@ bhargav thanki –

+0

尝试在logcat中打印点击的项目位置的日志 –

回答

0

首先你的方法getItemId()更改为,让我知道,如果它仍然简化版,工作

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

}

而且放入ViewHolder视图;在班级一级。您一次又一次地使用本地空变量。