Bank.java檔案代碼
package com.example.bloodbank。
import android.database.Cursor。
import android.database.sqlite.SQLiteDatabase。
import android.os.Bundle。
importandroid.view.View。
import android.widget.AdapterView。
import android.widget.ArrayAdapter;
import android.widget.ListView。
import android.widget.Spinner。
import android.widget.Toast。
import androidx.appcompat.app.AppCompatActivity。
import java.util.ArrayList。
public class Bank extends AppCompatActivity {
private Spinner spBloodGroup,spCity;
private String bgArray[]=new String[] {"A "/span>, "A-", "B ","B-","O "。 "O-","AB ","AB-"]。
private DBConnection db;
private ListView lvDonors;
private ArrayList<String> city, name;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState)。
setContentView(R.layout.acitvity_bank)。
//初始化旋轉器。
spBloodGroup=findViewById(R.id.spBloodGroup) 。
spCity=findViewById(R.id.spCity) 。
//初始化ListView。
lvDonors=findViewById(R.id.lvDonors) 。
//ArrayAdapter to spinner blood group。
ArrayAdapter<String> adapter =new ArrayAdapter<>(this,R. layout.bank_spinner,bgArray)。)
spBloodGroup.setAdapter(adapter)。
//初始化Arraylist。
city=new ArrayList<String>()。
name=new ArrayList<>()。
//Initialisation of database onject
db=new DBConnection(this)。
//Populating City spinner[/span]。
populateList()。
ArrayAdapter<String> adapter1=new ArrayAdapter<>(this,R. layout.spinner_city,city)。)
spCity.setAdapter(adapter1)。
spBloodGroup.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener){
.
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
filterDonor()。
}
Custom_listview.xml布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"/span>
android:layout_width="match_parent"。
android:layout_height="match_parent"。
android:padding="15dp">/span>
<TextView。
android:id="@ id/lvtvName"/span>
android:layout_width="wrap_content"
android:layout_height="wrap_content"。
android:textSize="34sp"。
android:textColor="#000000"/>
</RelativeLayout>
activity_bank.xml
<?xml version="1.0" encoding="utf-8"? >
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"/span>
android:layout_width="match_parent"。
android:layout_height="match_parent"。
xmlns:tools="http://schemas.android.com/tools"
tools:context=".Bank">/span>
<TextView。
android:id="@ id/tvDonarHeader"。
android:layout_width="wrap_content"
android:layout_height="wrap_content"。
android:text="Donate"。
android:textSize="44sp"
android:textColor="#FF0000"。
android:layout_centerHorizontal="true"/span>/>
<TextView。
android:id="@ id/tvBLoodGroup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"。
android:text="Blood Group"。
android:layout_below="@ id/tvDonarHeader"
android:textSize="20sp"。
android:textColor="#000000"。
android:layout_marginRight="5dp"/>
<Spinner。
android:id="@ id/spBloodGroup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"。
android:layout_toRightOf="@ id/tvBLoodGroup"
android:layout_below="@ id/tvDonarHeader"/>
<TextView。
android:id="@ id/tvCity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"。
android:text="City"。
android:layout_below="@ id/tvDonarHeader"
android:textSize="20sp"。
android:layout_toRightOf="@ id/spBloodGroup"
android:textColor="#000000"
android:layout_marginRight="5dp"/>
<Spinner。
android:id="@ id/spCity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"。
android:layout_toRightOf="@ id/tvCity"
android:layout_below="@ id/tvDonarHeader"/>
<ListView。
android:id="@ id/lvDonors"
android:layout_width="wrap_content"
android:layout_height="match_parent"。
android:layout_below="@ id/spBloodGroup"
android:divider="@color/teal_200"
android:dividerHeight="2dp"/span>
android:listSelector="@color/teal_200"/span>/>
</RelativeLayout>
得到這個錯誤
E/AndroidRuntime。FATAL EXCEPTION: main 行程:com.example.bloodbank, PID: 16440 java.lang.NullPointerException。試圖在一個空物件參考上呼叫虛擬方法'void android.widget.TextView.setText(java.lang.CharSequence)' 。 at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:392) at android.widget.ArrayAdapter.getView(ArrayAdapter.java:362) at android.widget.AbsListView.getView(AbsListView.java:2459) at android.widget.ListView.measureHeightOfChildren(ListView.java:1281) at android.widget.ListView.onMeasure(ListView.java:1189) at android.view.View.measure(View.java:17765) at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:841) at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:507) at android.view.View.measure(View.java:17765) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5620) at android.widget.FrameLayout.onMeasure(FrameLayout.java:454) at androidx.appcompat.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:145) at android.view.View.measure(View.java:17765) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5620) at androidx.appcompat.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:496) at android.view.View.measure(View.java:17765) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5620) at android.widget.FrameLayout.onMeasure(FrameLayout.java:454) at android.view.View.measure(View.java:17765) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5620) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1687) at android.widget.LinearLayout.measureVertical(LinearLayout.java:755) at android.widget.LinearLayout.onMeasure(LinearLayout.java:624) at android.view.View.measure(View.java:17765) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5620) at android.widget.FrameLayout.onMeasure(FrameLayout.java:454) at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2616) at android.view.View.measure(View.java:17765) at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2349) at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1373) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1597) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1251) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6438) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:795) at android.view.Choreographer.doCallbacks(Choreographer.java:598) at android.view.Choreographer.doFrame(Choreographer.java:567) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:781) at android.os.Handler.handleCallback(Handler.java:810) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:189) at android.app.ActivityThread.main(ActivityThread.java:5532) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:950) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:745)。uj5u.com熱心網友回復:
在我看來,在倒數第二行,你正試圖呼叫這個建構式:
ArrayAdapter()
ArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects)
請注意,第三個引數應該是對TextView的參考。但是你的第三個引數是對ListView的參考。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/329598.html
標籤:
