Java 在AsyncTask中从SQLite数据库加载数据时,活动崩溃
我一直在寻找我的问题。类似的问题是,但不是答案 以下是我的活动代码:Java 在AsyncTask中从SQLite数据库加载数据时,活动崩溃,java,android,sqlite,Java,Android,Sqlite,我一直在寻找我的问题。类似的问题是,但不是答案 以下是我的活动代码: public class HistoryActivity extends AppCompatActivity { RecyclerView recyclerView; RecyclerReviewedLocaionAdaptor recyclerAdaptor; ArrayList<String> id; ArrayList<String> cnic; ArrayList<String>
public class HistoryActivity extends AppCompatActivity {
RecyclerView recyclerView;
RecyclerReviewedLocaionAdaptor recyclerAdaptor;
ArrayList<String> id;
ArrayList<String> cnic;
ArrayList<String> details;
ProgressDialog progressDialog;
NumberDB numberDB;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_history);
// recycler view
recyclerView = (RecyclerView) findViewById(R.id.recyclerViewReviewedLocation);
new loadData().execute();
recyclerAdaptor = new RecyclerReviewedLocaionAdaptor(id, cnic, details);
recyclerView.setAdapter(recyclerAdaptor);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
}
public void loadData()
{
id=new ArrayList<String>();
cnic=new ArrayList<String>();
details=new ArrayList<String>();
numberDB=new NumberDB(getApplicationContext(), "Users", null, 1);
Cursor cursor=numberDB.getData();
if (cursor.moveToFirst()){
do{
String idData = cursor.getString(cursor.getColumnIndex(NumberDB.KEY_ID));
String cnicData = cursor.getString(cursor.getColumnIndex(NumberDB.sentFrom));
String detailsData = cursor.getString(cursor.getColumnIndex(NumberDB.details));
// do what ever you want here
id.add(idData);
id.add(cnicData);
id.add(detailsData);
}while(cursor.moveToNext());
}
cursor.close();
}
class loadData extends AsyncTask<Void, Void, Void>
{
@Override
protected Void doInBackground(Void... voids) {
id.clear();
cnic.clear();
details.clear();
try{
loadData();
}catch (Exception e)
{
Log.i("Database", "Error fetching Data");
}
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
Toast.makeText(HistoryActivity.this, "Complete", Toast.LENGTH_SHORT).show();
}
}
您在初始化arrayList之前正在清除它我删除了清除arrayList的代码,但问题仍然存在。我的回收器适配器类没有问题。我已通过手动放置数据进行检查。为什么会出现此错误。android.view.WindowManager$BadTokenException:无法添加窗口--标记null不适用于应用程序,就像您试图使用非活动上下文显示对话框一样。请张贴完整的stacktrace,并猜测它也在
NumberDB
中。
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.abdullahsaleem.meravote, PID: 31721
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.abdullahsaleem.meravote/com.example.abdullahsaleem.meravote.HistoryActivity}: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2505)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2577)