簡體   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