繁体   English   中英

片段中的可单击ListView项

[英]Clickable ListView items in Fragment

所以我在Fragment中创建了ListView。 这是代码:

public class HomeFragment extends ListFragment {

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle saveInstanceState){
        //INFLATE THE FRAGMENT LAYOUT FILE
        ViewGroup rootView = (ViewGroup)inflater.inflate(R.layout.fragment_home, container, false);
        //CREATE DATASOURCE
        String[] datasource={"Potisak s klupe",
                "Potisak s klupe bučicama",
                "Potisak s kose klupe",
                "Potisak s kose klupe bučicama",
                "Potisak s kontrakose klupe",
                "Potisak s kontrakose klupe bučicama",
                "Potisak na spravi",
                "Razvlačenja na ravnoj klupi",
                "Razvlačenja na kosoj klupi",
                "Razvlačenja na kontrakosoj klupi",
                "Razvlačenja kablovima na klupi",
                "Propadanja",
                "Sklekovi",
                "Sklekovi s nogama na povišenom",
                "Crossover kablovima",
                "Razvlačenja na leptir mašini",
        };
        //CREATE ADAPTER
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), R.layout.rowlayout_prsa, R.id.labelrowlayout_prsa_tekst, datasource);
        // BIND ADAPTER TO THE LISTFRAGMENT
        setListAdapter(adapter);
        //RETAIN LISTFRAGMENT INSTANCE ACROSS CONFIGURATION CHANGES
        setRetainInstance(true);
        return rootView;
    }
    // HANDLING ITEM CLICK
        public void onListItemClick(ListView l, View view, int position, long id){
            ViewGroup viewGroup = (ViewGroup)view;
            TextView txt = (TextView)viewGroup.findViewById(R.id.labelrowlayout_prsa_tekst);
        l.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Intent intent = new Intent (getActivity(), PotisakSKlupe.class);
                startActivity(intent);
            }
        });


        }


}

但是当我用意图单击第一个列表项时,我无法进行其他活动。 还尝试了Internet上发现的其他几种方法,但是没有运气。 片段列表视图没有什么..

我在这里想念什么?

试试这个,我想你没有在你的code.please调用此方法,然后再尝试。

public void onListItemClick(ListView l, View view, int position, long id){
        ViewGroup viewGroup = (ViewGroup)view;
        TextView txt = (TextView)viewGroup.findViewById(R.id.labelrowlayout_prsa_tekst);
    l.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Intent intent = new Intent (getActivity(), PotisakSKlupe.class);
            startActivity(intent);
        }
    });


    }

希望能帮助到你。

首先重写此方法。

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

在onCreateView之后,将调用onActivityCreated方法。 因此请将您的onListItemClick()放在onActivityCreated方法中。 现在将列表项设置为可单击。

listView.setClickable(true);

接着,

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            startActivity(new Intent(getActivity(), AddActivity.class));
        }
    });

这可能对您有帮助。 (检查我使用的变量名和您使用的变量名。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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