![](/img/trans.png)
[英]AutoCompleteTextView in fragment get NullPointerException
[英]AutoCompleteTextView NullPointerException
我正在嘗試使用AutoCompleteTextView
,但是當我打開應該顯示表中消費者的片段時,我的應用程序崩潰了。
這是我的數據庫助手代碼:
public String[] readingconsumerlist() {
try {
String consumer[] = null;
SQLiteDatabase db = this.getReadableDatabase();
String query = "select name from Consumer";
Cursor cursor = db.rawQuery(query, null);
if (cursor != null) {
if (cursor.moveToFirst()) {
consumer = new String[cursor.getCount()];
int i = 0;
do {
consumer[i]=cursor.getString(0);
i++;
} while (cursor.moveToNext());
}
}
cursor.close();
return consumer;
}
catch (Exception e) {
e.getMessage();
return null;
}
}
這是代碼在片段中:
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
homeViewModel = ViewModelProviders.of(this).get(HomeViewModel.class);
View root = inflater.inflate(R.layout.fragment_home, container, false);
db = new DatabaseHelper(getActivity());
final String[] myconsumer = db.readingconsumerlist();
autoCompleteTextViewconsumername = getActivity().findViewById(R.id.consumer_name);
ArrayAdapter<String> adapter = new ArrayAdapter<>(getActivity(),android.R.layout.simple_dropdown_item_1line, myconsumer);
autoCompleteTextViewconsumername.setAdapter(adapter);
return root;
}
我不知道這是否是堆棧跟蹤,我是新手。 我正在嘗試修復此錯誤近 2 天,但我沒有做任何工作
Process: com.vicjames.finalmeterreader, PID: 11657
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.vicjames.finalmeterreader/com.vicjames.finalmeterreader.MainActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2988)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3066)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1764)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:202)
at android.app.ActivityThread.main(ActivityThread.java:6962)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:528)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:888)
Caused by: java.lang.NullPointerException
at java.util.Objects.requireNonNull(Objects.java:203)
at java.util.Arrays$ArrayList.<init>(Arrays.java:3741)
at java.util.Arrays.asList(Arrays.java:3728)
at android.widget.ArrayAdapter.<init>(ArrayAdapter.java:163)
at com.vicjames.finalmeterreader.ui.home.HomeFragment.onCreateView(HomeFragment.java:58)
at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2600)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:881)
at androidx.fragment.app.FragmentManagerImpl.addAddedFragments(FragmentManagerImpl.java:2100)
at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManagerImpl.java:1874)
at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManagerImpl.java:1830)
at androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManagerImpl.java:1727)
at androidx.fragment.app.FragmentManagerImpl.dispatchStateChange(FragmentManagerImpl.java:2663)
at androidx.fragment.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManagerImpl.java:2613)
at androidx.fragment.app.Fragment.performActivityCreated(Fragment.java:2624)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:904)
at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManagerImpl.java:1238)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:1303)
at androidx.fragment.app.FragmentManagerImpl.dispatchStateChange(FragmentManagerImpl.java:2659)
at androidx.fragment.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManagerImpl.java:2613)
at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:246)
at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:542)
at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:178)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1334)
at android.app.Activity.performStart(Activity.java:7247)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2951)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3066)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1764)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:202)
at android.app.ActivityThread.main(ActivityThread.java:6962)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:528)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:888)
您應該以這種方式獲取片段的小部件:
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View root = inflater.inflate(R.layout.fragment_home, container, false) ;
autoCompleteTextViewconsumername =root.findViewById(R.id.consumer_name);
.
.
.
return root;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.