Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在AsyncTask中从SQLite数据库加载数据时,活动崩溃_Java_Android_Sqlite - Fatal编程技术网

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)