[英]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.