私は学校のモバイルアプリケーションを作成するのに参考にデータベースの例を使用しており、問題が発生しています。私はすべての私のフィールドを格納するためにlistViewを使用しています、私はそれを新しいアクティビティで表示させたいと思います。今のところ、EditTextはすべて、メイン画面上に縦に並んでいて、リストビューは画面の最下部に表示されていますが、ボタンをクリックすると別の画面に表示されます。 2番目のアクティビティはすべての情報を正しく表示していますが、メイン画面のlistViewも正しく表示されています。メイン画面でlistViewを取り除こうとすると、動作しません。正しい方向に私を向けるどんな助けも素晴らしいでしょう!次のように私のactivity_mainで新しいアクティビティにデータベース値を渡す
は、私は、画面の下部にあるリストビューを持っている:
<ListView
android:id="@+id/contactlist"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
をそして私はまた、私はそれが表示したいと思い、私のactivity_display_databaseレイアウトでそれを宣言した:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android">
<ListView
android:id="@+id/contactlist"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
そして、次のように私は私のメインのXMLファイルからリストビューを削除すると、私は実際にエラーを取得していますどこ私の主な活動は、次のとおりです。
public class MainActivity extends AppCompatActivity {
private List<PhoneBook> contactList;
private ListView listView;
private TextView name, number, address, orderTotal, amountReceived, tip, mileage, grandTotal;
private Button add;
private PhonebookAdapter adapter;
PhoneBookHandler db;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.contactlist);
db = new PhoneBookHandler(this);
contactList = db.getAllContacts();
adapter = new PhonebookAdapter(this, contactList);
listView.setAdapter(adapter);
}
public void onClick(View view){
name = (EditText) findViewById(R.id.name);
number = (EditText) findViewById(R.id.number);
address = (EditText) findViewById(R.id.address);
orderTotal = (EditText) findViewById(R.id.orderTotal);
amountReceived = (EditText) findViewById(R.id.amountReceived);
tip = (EditText) findViewById(R.id.tip);
mileage = (EditText) findViewById(R.id.mileage);
grandTotal = (EditText) findViewById(R.id.grandTotal);
String cName = name.getText().toString();
String num = number.getText().toString();
String cAddress = address.getText().toString();
String cOrderTotal = orderTotal.getText().toString();
String cAmountReceived = amountReceived.getText().toString();
String cTip = tip.getText().toString();
String cMileage = mileage.getText().toString();
String cGrandTotal = grandTotal.getText().toString();
int id = db.addContact(new PhoneBook(cName, num, cAddress, cOrderTotal,
cAmountReceived, cTip, cMileage, cGrandTotal));
contactList.add(new PhoneBook(id, cName, num, cAddress, cOrderTotal,
cAmountReceived, cTip, cMileage, cGrandTotal));
adapter.notifyDataSetChanged();
}
public void buttonClickFunction(View v)
{
Intent intent = new Intent(getApplicationContext(), display_database.class);
startActivity(intent);
}
}
私は、データベースエントリがactivity_display_database xmlファイルに表示される場所にコードを取得しようとしていますが、メイン画面には表示されません。メイン画面からlistViewを削除しようとすると、メインのonCreateメソッドでエラーが発生します。あなたの時間をありがとう。私を助けることができる誰でも、私は非常に感謝します!
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.boley.databaseexample/com.example.boley.databaseexample.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ListView.setAdapter(android.widget.ListAdapter)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3253)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349)
at android.app.ActivityThread.access$1100(ActivityThread.java:221)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7224)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ListView.setAdapter(android.widget.ListAdapter)' on a null object reference
at com.example.boley.databaseexample.MainActivity.onCreate(MainActivity.java:43)
at android.app.Activity.performCreate(Activity.java:6876)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1135)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3206)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349)
at android.app.ActivityThread.access$1100(ActivityThread.java:221)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7224)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
入手したエラーを投稿できますか? – BlackHatSamurai
はい、問題ありません。私はlogcatで私の質問を更新しました。 –