簡體   English   中英

按鈕不響應

[英]Button does not respond

我在我的一個片段中有一個按鈕。 但這似乎是“不可點擊的”。 沒有Log.d。 當我單擊按鈕時出現消息(在另一個片段中(相同的onclicklistenercode),一切都很好。為了得到更全面的了解,我添加了整個類以及布局文件中定義按鈕的部分。

 public class ListViewFragment extends Fragment { DbHelper mydb; Button buttondeletedb; Button buttonexport; private EditText roomnr; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_listview, container, false); Context context = getContext(); mydb = new DbHelper(context); buttondeletedb = (Button) view.findViewById(R.id.button_deletelist_list); buttonexport = (Button) view.findViewById(R.id.button_export); String dataList = mydb.getAllElements(); String [] dataListArray = dataList.split("\\n"); List<String> dataListFinal = new ArrayList<>(Arrays.asList(dataListArray)); ArrayAdapter<String> dataListAdapter = new ArrayAdapter<>( getActivity(), R.layout.list_item_datalist, R.id.list_item_datalist_textview, dataListFinal); View rootView=inflater.inflate(R.layout.fragment_listview, container, false); ListView dataListListView = (ListView) rootView.findViewById(R.id.datalist); dataListListView.setAdapter(dataListAdapter); buttondeletedb.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Log.d("buttondeletelist", "clicked!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); mydb.deleteAll(); } }); return rootView; } } 

  <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/deletelist" android:id="@+id/button_deletelist_list" android:layout_gravity="center_horizontal" /> 

您不能單擊該按鈕,因為Fragment的根視圖不是view ,您返回了rootView 該按鈕是子視圖視圖。

更改return rootView; return view;

它應該工作

//刪除rootView並返回視圖而不是rootView

public class ListViewFragment extends Fragment {

                DbHelper mydb;

                Button buttondeletedb;
                Button buttonexport;

                private EditText roomnr;

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

                    Context context = getContext();
                    mydb = new DbHelper(context);

                    buttondeletedb = (Button) view.findViewById(R.id.button_deletelist_list);
                    buttonexport = (Button) view.findViewById(R.id.button_export);

                    String dataList = mydb.getAllElements();                                                   
                    String [] dataListArray = dataList.split("\n");                                             

                    List<String> dataListFinal = new ArrayList<>(Arrays.asList(dataListArray));

                    ArrayAdapter<String> dataListAdapter = new ArrayAdapter<>(                                  
                            getActivity(),                                                                      
                            R.layout.list_item_datalist,                                                        
                            R.id.list_item_datalist_textview,                                                   
                            dataListFinal);                                                                     
            // Change made here. replace view instead of rootView and remove rootView
                    ListView dataListListView = (ListView) view.findViewById(R.id.datalist);
                    dataListListView.setAdapter(dataListAdapter);


                    buttondeletedb.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View view) {
                            Log.d("buttondeletelist", "clicked!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
                            mydb.deleteAll();
                        }
                    });
            // Replace rootView with view.
                    return view;
                }


            }

XML文件和元素(按鈕)的類文件之間的鏈接不存在。在您的onCreateView()中添加此行

   Button buttondeletedb = (Button) view.findViewById(R.id.buttonid);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM