0
我正在處理一個鬧鐘,我想用兩個按鈕(更新和刪除)向每個容器顯示一個鬧鐘列表。 ListView的作品就好,而不兩個按鈕,但是當我在添加兩個按鈕,當current.class嘗試加載我得到這個錯誤:ListView上的按鈕上的空錯誤
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
我相信,我只是搞亂的東西了簡單的像我通常會這樣做,但我無法找到任何幫助我弄清楚的例子。我讀過RecyclerView是listview的高級版本,並且在按鈕方面效果很好,但是我想了解後者,以便我可以獲取當前代碼的工作和調試。以下是我的.java和.xml列表視圖。任何幫助都會很棒,即使它只是指向另一個有答案的網站。如果可能的話,我希望得到和解釋我做錯了什麼,以便我可以學習。
current.java
public class current extends ListActivity {
TextView alarm_Id;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.current_alarm_list);
final AlarmRepo repo = new AlarmRepo(this);
//get string of alarm name and id
ArrayList<HashMap<String, String>> AlarmList = repo.getAlarmList();
if(AlarmList.size()!=0) {
ListView lv = getListView();
Button update = (Button) lv.findViewById(R.id.btnUpdate);
update.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
alarm_Id = (TextView) v.findViewById(R.id.my_alarm_Id);
String alarmId = alarm_Id.getText().toString();
Intent objIndent = new Intent(getApplicationContext(),alarmUpdate.class);
objIndent.putExtra("alarm_Id", Integer.parseInt(alarmId));
startActivity(objIndent);
}
});
Button delete = (Button) lv.findViewById(R.id.btnDelete);
delete.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
alarm_Id = (TextView) v.findViewById(R.id.my_alarm_Id);
String alarmId = alarm_Id.getText().toString();
int idalarm = Integer.parseInt(alarmId);
repo.delete(idalarm);
startActivity(new Intent(current.this, current.class));
finish();
}
});
String[] from = { "id", "Alarm_Name" };
int[] to = {R.id.my_alarm_Id, R.id.my_alarm_name};
SimpleAdapter adapter = new SimpleAdapter(current.this, AlarmList, R.layout.view_alarm_entry, from, to);
setListAdapter(adapter);
}else{
Toast.makeText(this,"No alarms!",Toast.LENGTH_LONG).show();
}
}
current_alarm_list.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"
tools:context="com.electrohaven.i_hate_ms.counterclockwise.MainActivity">
<ListView
android:id="@android:id/list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
>
</ListView>
view_alarm_entry.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/my_alarm_name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingStart="6dip"
android:paddingTop="6dip"
android:textSize="22sp"
android:textStyle="bold"
android:layout_toStartOf="@+id/btnUpdate"/>
<TextView
android:id="@+id/my_alarm_Id"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/my_alarm_name"
android:layout_toStartOf="@+id/btnUpdate"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/my_alarm_name"
android:layout_alignBottom="@+id/my_alarm_name"
android:layout_alignParentEnd="true"
android:id="@+id/btnUpdate"
android:text="Update"
android:focusable="false"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btnDelete"
android:layout_below="@+id/my_alarm_Id"
android:layout_alignParentEnd="true"
android:text="delete"
android:focusable="false"
/>
謝謝你的工作 – MrWolf