Android onListItemClick不在片段中工作

Android onListItemClick不在片段中工作,android,android-fragments,Android,Android Fragments,onListItemClick不工作。我试图存储在listview中选择的值,并将其传递给mainactivity 我如何获取所选项目位置并将其传递给主要活动 请提出建议并感谢您的帮助 这是我的密码: public static class ListViewFragment extends Fragment { public static final String ARG_PLANET_NUMBER = "planet_number"; //FragmentActivity li

onListItemClick不工作。我试图存储在listview中选择的值,并将其传递给mainactivity

我如何获取所选项目位置并将其传递给主要活动

请提出建议并感谢您的帮助

这是我的密码:

public static class ListViewFragment extends Fragment {
    public static final String ARG_PLANET_NUMBER = "planet_number";
    //FragmentActivity listener;
    private ListView myListView;
    private EditText editsearch;
    private CheckBox selectAll;
    private ArrayList<String> SelectedFilter1;
    private ArrayList<String> CheckedFitlers;

    ArrayAdapter<String> adapter_list;

    public ListViewFragment() {
        // Empty constructor required for fragment subclasses
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);  

        SelectedFilter1=getArguments().getStringArrayList("ArrayList");

        adapter_list = new ArrayAdapter<String>(this.getActivity(),
                android.R.layout.simple_list_item_multiple_choice,SelectedFilter1);

        adapter_list.notifyDataSetChanged();

        myListView.setAdapter(adapter_list);

        myListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);

        myListView.setTextFilterEnabled(true);

        editsearch.addTextChangedListener(new TextWatcher() {

            @Override
            public void afterTextChanged(Editable arg0) {
                // TODO Auto-generated method stub
                String text = editsearch.getText().toString().toLowerCase(Locale.getDefault());
                adapter_list.getFilter().filter(text);
            }

            @Override
            public void beforeTextChanged(CharSequence arg0, int arg1,
                    int arg2, int arg3) {
                // TODO Auto-generated method stub
            }

            @Override
            public void onTextChanged(CharSequence arg0, int arg1, int arg2,
                    int arg3) {
                // TODO Auto-generated method stub
            }
        });

        selectAll.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {

                Log.i("CheckBOX","Is Checked:"+isChecked);
                if(isChecked)
                {
                    for ( int i=0; i< myListView.getCount(); i++ ) 
                        myListView.setItemChecked(i, true);
                }else
                {
                    for ( int i=0; i< myListView.getCount(); i++ ) 
                        myListView.setItemChecked(i, false);
                }
            }
        }
     );
    }

    public void onListItemClick(ListView l, View v, int position, long id) {
        //showDetails(position);
        Log.i("Item Clicked in the Listview","Item Clicked in the listview: "+position);
        //Toast.makeText(getActivity(), "Item Clicked in the listview: "+position, 3000).show();
    }

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

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

        myListView=(ListView) rootView.findViewById(R.id.listView_brand);

        editsearch = (EditText) rootView.findViewById(R.id.search);

        selectAll=(CheckBox) rootView.findViewById(R.id.checkBox1);

        //myListView.setFocusable(false);

       // myListView.setClickable(false);

        selectAll.setFocusable(false);

       // rootView.setFocusable(false)

        return rootView;
    }
}
公共静态类ListViewFragment扩展了片段{
公共静态最终字符串ARG\u PLANET\u NUMBER=“PLANET\u NUMBER”;
//碎片活动监听器;
私有列表视图myListView;
私人编辑文本编辑搜索;
私有复选框selectAll;
private ArrayList SelectedFilter1;
私人ArrayList格子家具;
阵列适配器列表;
公共ListViewFragment(){
//片段子类需要空构造函数
}
@凌驾
已创建ActivityState上的公共无效(Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
SelectedFilter1=getArguments().getStringArrayList(“ArrayList”);
adapter_list=new ArrayAdapter(this.getActivity(),
android.R.layout.simple\u list\u item\u多选,SelectedFilter1);
适配器列表。notifyDataSetChanged();
myListView.setAdapter(适配器列表);
myListView.setChoiceMode(ListView.CHOICE\u MODE\u MULTIPLE);
myListView.setTextFilterEnabled(true);
editsearch.addTextChangedListener(新的TextWatcher(){
@凌驾
public void PostTextChanged(可编辑arg0){
//TODO自动生成的方法存根
String text=editsearch.getText().toString().toLowerCase(Locale.getDefault());
适配器\u list.getFilter().filter(文本);
}
@凌驾
更改前的公共无效(字符序列arg0,int arg1,
整数arg2,整数arg3){
//TODO自动生成的方法存根
}
@凌驾
public void onTextChanged(字符序列arg0、int arg1、int arg2、,
int arg3){
//TODO自动生成的方法存根
}
});
选择All.setOnCheckedChangeListener(新建CompoundButton.OnCheckedChangeListener(){
@凌驾
检查更改后的公共无效(复合按钮视图,布尔值已检查){
Log.i(“复选框”,“已选中:+isChecked”);
如果(已检查)
{
对于(int i=0;i
XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="test.dsi.decathnavigation.Brand_list" >

<ListView
    android:id="@+id/listView_brand"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/search"
    android:fastScrollAlwaysVisible="false"
    android:fastScrollEnabled="false"
    android:scrollbarAlwaysDrawVerticalTrack="true"
    android:scrollingCache="true"
    android:smoothScrollbar="false" >

</ListView>

<EditText
    android:id="@+id/search"
    android:layout_width="450dp"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/listView_brand"
    android:layout_alignParentTop="true"
    android:ems="10"
    android:hint="Type to search" />

<CheckBox
    android:id="@+id/checkBox1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_alignTop="@+id/search"
    android:text="Select All" />

</RelativeLayout>

onListItemClick不在片段中工作

因为您没有在ListViewFragment片段中实现
OnItemClickListener
,而是覆盖了
OnItemListener
onListItemClick

按如下方式操作:

myListView.setOnItemClickListener(new OnItemClickListener() {

    public void onItemClick(AdapterView<?> arg0,
                    View arg1, int position, long arg3)
    {
        Log.i("Item Clicked in the Listview","Item Clicked in the listview: "+position);
    }
});
myListView.setOnItemClickListener(新的OnItemClickListener(){
公共链接(AdapterView arg0,
视图arg1,内部位置,长arg3)
{
Log.i(“在Listview中单击的项目”,“在Listview中单击的项目:+位置”);
}
});

您需要为
列表视图添加一个
OnItemClickListener

myListView.setOnItemClickListener(new OnItemClickListener() { 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

    //your code over here
    }
});
myListView.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
//你的密码在这里
}
});

希望这有帮助。

我将尝试使用我的示例来帮助您:

在包含ListView的活动中声明ListView:

   public class RankingActivity extends Activity {
   ListView bestPlayersList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_ranking);
        mContext=this;
        bestPlayersList = (ListView) findViewById(R.id.bestPlayersListView);
     }

bestPlayersList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    final CheckedTextView item = (CheckedTextView) view;

                    if (item.isChecked())
                    {
                       //..do some action..for example get item text: item.getText()
                     }
                }
               });
}
公共类RankingActivity扩展活动{
列表视图最佳玩家列表;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ranking);
mContext=这个;
BestPlayerList=(ListView)findViewById(R.id.BestPlayerListView);
}
BestPlayerList.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
最终CheckedTextView项=(CheckedTextView)视图;
如果(item.isChecked())
{
//…执行一些操作..例如获取项文本:item.getText()
}
}
});
}

它对我有用;)

您是否尝试了myListView.setOnItemClickListener(新建OnItemClickListener(){public void onItemClick(AdapterView父级,视图视图,int位置,长id){…}
?不,我没有……谢谢!!现在工作正常。:)酷。作为答案添加。愉快的编码。你能帮我建议如何将选中的项目传递给主要活动吗?@PramodK,