实现单击侦听器到ListFragment

时间:2014-07-05 16:05:01

标签: android click

我是新手,我正在使用FragmentList,我想要获取点击事件。我该怎么办? 因为我的onitemclick没有捕获de click :( 我试图将可聚焦的textview设置为false,因为我在一篇文章中读到它而没有任何内容。

public class FgShopsInfoList extends ListFragment implements OnItemClickListener {
 String[] countries = new String[] {
    "India",
    "Pakistan",
    "Sri Lanka",
    "China",
    "Bangladesh",
    "Nepal",
    "Afghanistan",
    "North Korea",
    "South Korea",
    "Japan"
};

// Array of integers points to images stored in /res/drawable/
int[] flags = new int[]{
    R.drawable.ic_launcher,
    R.drawable.ic_launcher,
    R.drawable.ic_launcher,
    R.drawable.ic_launcher,
    R.drawable.ic_launcher,
    R.drawable.ic_launcher,
    R.drawable.ic_launcher,
    R.drawable.ic_launcher,
    R.drawable.ic_launcher,
    R.drawable.ic_launcher
};

// Array of strings to store currencies
String[] currency = new String[]{
    "Indian Rupee",
    "Pakistani Rupee",
    "Sri Lankan Rupee",
    "Renminbi",
    "Bangladeshi Taka",
    "Nepalese Rupee",
    "Afghani",
    "North Korean Won",
    "South Korean Won",
    "Japanese Yen"
};

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_shops_info_list, container,false);

    // Each row in the list stores country name, currency and flag
    List<HashMap<String,String>> aList = new ArrayList<HashMap<String,String>>();

    for(int i=0;i<10;i++){
        HashMap<String, String> hm = new HashMap<String,String>();
        hm.put("txt", "Country : " + countries[i]);
        hm.put("cur","Currency : " + currency[i]);
        hm.put("flag", Integer.toString(flags[i]) );
        aList.add(hm);
    }

    // Keys used in Hashmap
    String[] from = { "flag","txt","cur" };

    // Ids of views in listview_layout
    int[] to = {  R.id.flag,R.id.txt,R.id.cur};

    // Instantiating an adapter to store each items
    // R.layout.listview_layout defines the layout of each item
    SimpleAdapter adapter = new SimpleAdapter(getActivity().getBaseContext(), aList, R.layout.fragment_shops_info_list, from, to);


    setListAdapter(adapter);



    return super.onCreateView(inflater, container, savedInstanceState);
}

@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
        long id) {
    Log.e("Xx","A");

}
}

布局

<?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/flag"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:contentDescription="XXXXX"
    android:paddingTop="10dp"
    android:paddingRight="10dp"
    android:paddingBottom="10dp"

     />

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/txt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="15dp"
    />


    <TextView
        android:id="@+id/cur"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="10dp"

         />

</LinearLayout>

</LinearLayout>

1 个答案:

答案 0 :(得分:0)

使用此方法

@Override
public void onListItemClick(ListView l, View v, int pos, long id) {
super.onListItemClick(l, v, pos, id);
//do something here
}

This是文档。

当选择列表中的项目时,将调用此方法。子类应该覆盖。如果子类需要访问与所选项相关联的数据,则可以调用getListView()。getItemAtPosition(position)。

<强>参数

l 点击发生的ListView

v 在ListView中单击的视图

位置列表中视图的位置

id 点击的商品的行ID