Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.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
Android 如何使用customadapter从带有映像的数据库中获取特定记录_Android_Android Listview_Android Asynctask_Nullpointerexception_Custom Adapter - Fatal编程技术网

Android 如何使用customadapter从带有映像的数据库中获取特定记录

Android 如何使用customadapter从带有映像的数据库中获取特定记录,android,android-listview,android-asynctask,nullpointerexception,custom-adapter,Android,Android Listview,Android Asynctask,Nullpointerexception,Custom Adapter,大家好,我是android的新手,我已经完成了从数据库中搜索特定记录的代码,并使用简单的光标适配器显示它的列表,以获得图像和数据,我开始使用自定义适配器,当我尝试从数据库中检索所有数据时,代码工作得非常好,但当我将参数传递给数据库中的方法以搜索特定记录并在列表中显示它时,会出现错误 这是我的密码 当用户选择要显示的数据时传递的代码 Intent i= new Intent(SearchByBed.this,SearchBedView.class); Bundle bbed= ne

大家好,我是android的新手,我已经完成了从数据库中搜索特定记录的代码,并使用简单的光标适配器显示它的列表,以获得图像和数据,我开始使用自定义适配器,当我尝试从数据库中检索所有数据时,代码工作得非常好,但当我将参数传递给数据库中的方法以搜索特定记录并在列表中显示它时,会出现错误

这是我的密码 当用户选择要显示的数据时传递的代码

    Intent i= new Intent(SearchByBed.this,SearchBedView.class);
    Bundle bbed= new Bundle();
    bbed.putString("bedValue", spinn_Bed.getSelectedItem().toString());
    i.putExtras(bbed);
    startActivity(i);
在这一部分中,从上一个类传递的参数是catch,然后传递给db,希望检索记录并将其绑定到自定义适配器

my asynctask code


public class loadSomeStuff extends AsyncTask<String, Integer, String> {
    ProgressDialog dialog;

    @Override
    protected void onPreExecute() {
        // TODO Auto-generated method stub
        dialog = new ProgressDialog(SearchBedView.this);
        dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
        dialog.setMax(100);
        dialog.setMessage("Loading Data");
        dialog.show();

    }

    @Override
    protected void onProgressUpdate(Integer... values) {
        // TODO Auto-generated method stub
        dialog.incrementProgressBy(values[0]);
    }

    @Override
    protected String doInBackground(String... params) {
        // TODO Auto-generated method stub
        for (int i = 0; i < 20; i++) {
            publishProgress(5);
            try {
                Thread.sleep(100);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        }
        dialog.dismiss();

        return null;
    }

    @Override
    protected void onPostExecute(String result) {
        // TODO Auto-generated method stub
        displaydemo();

    }


}

public void displaydemo() {
    // TODO Auto-generated method stub

    Bundle bbedview = this.getIntent().getExtras();

     name = bbedview.getString("name").toString();    
     //data.setText(name);   //as per log here i was getting null pointer exception but  

     //know commented as it was line from my previous code 

    info = new PropertyInfo(this);
    info.open();
    cursor = info.getBed(name);
    String[] from = new String[] { PropertyInfo.KEY_ROWID,
            PropertyInfo.KEY_TYPE, PropertyInfo.KEY_BEDROOMS,
            PropertyInfo.KEY_STATUS, PropertyInfo.KEY_CITY,
            PropertyInfo.KEY_FURNISHING, PropertyInfo.KEY_TOTPRICE };
    int[] to = new int[] { R.id.rowId, R.id.rowtype, R.id.rowBed,
            R.id.rowStatus, R.id.rowCity, R.id.rowFurnish,
            R.id.rowTotalPrice };
    custAdapter = new CustomContactsAdapterBedView(this, R.layout.row, cursor,
            from, to);

    this.setListAdapter(custAdapter);
           }
数据库中的方法如下所示

         public Cursor getBed(String l) {
    String[] columns = new String[] { KEY_ROWID, KEY_TITLE, KEY_TYPE,
            KEY_BEDROOMS, KEY_STATUS, KEY_CITY, KEY_LOCALITY, KEY_PRICE,
            KEY_TOTPRICE, KEY_FURNISHING, KEY_BALCONIES, KEY_BATHROOM,
            IMAGE };
    Cursor c = ourDatabase.query(DATABASE_TABLE, columns, KEY_BEDROOMS
            + "=" + l, null, null, null, null);
    return c;

}
logcat中的错误是

          05-16 20:33:43.803: E/AndroidRuntime(31444): FATAL EXCEPTION: main
          05-16 20:33:43.803: E/AndroidRuntime(31444): java.lang.NullPointerException
          05-16 20:33:43.803: E/AndroidRuntime(31444):  at 

          com.project.realestate.SearchBedView.displaydemo(SearchBedView.java:299)
          05-16 20:33:43.803: E/AndroidRuntime(31444):  at 

        com.project.realestate.SearchBedView$loadSomeStuff.onPostExecute(SearchBedView.java:281)
         05-16 20:33:43.803: E/AndroidRuntime(31444):   at 

      com.project.realestate.SearchBedView$loadSomeStuff.onPostExecute(SearchBedView.java:1)
         05-16 20:33:43.803: E/AndroidRuntime(31444):   at 
         android.os.AsyncTask.finish(AsyncTask.java:631)
         05-16 20:33:43.803: E/AndroidRuntime(31444):   at   
         android.os.AsyncTask.access$600(AsyncTask.java:177)
         05-16 20:33:43.803: E/AndroidRuntime(31444):   at  
         android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
         05-16 20:33:43.803: E/AndroidRuntime(31444):   at  
         android.os.Handler.dispatchMessage(Handler.java:99)
         05-16 20:33:43.803: E/AndroidRuntime(31444):   at  
         android.os.Looper.loop(Looper.java:137)
         05-16 20:33:43.803: E/AndroidRuntime(31444):   at   
         android.app.ActivityThread.main(ActivityThread.java:5041)
         05-16 20:33:43.803: E/AndroidRuntime(31444):   at
         java.lang.reflect.Method.invokeNative(Native Method)
         05-16 20:33:43.803: E/AndroidRuntime(31444):   at 
         java.lang.reflect.Method.invoke(Method.java:511)
         05-16 20:33:43.803: E/AndroidRuntime(31444):   at  
        com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
        05-16 20:33:43.803: E/AndroidRuntime(31444):    at
        com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
        05-16 20:33:43.803: E/AndroidRuntime(31444):    at 
        dalvik.system.NativeStart.main(Native Method)
请帮我写代码

data.setText(name);
我猜数据是EditText或textView你有findViewById对它的引用吗

您必须用单引号和转义序列将字符串值括起来,我已经修改了行

Cursor c = ourDatabase.query(DATABASE_TABLE, columns, KEY_BEDROOMS
        + "=\'" +l+"\'", null, null, null, null);
您在哪里为TextView(或任何小部件)定义了“数据”

它的定义如下:


TextView数据=(TextView)findViewById(R.id.yourTextView)

嘿,有人请帮忙PPP你应用了AsyncTask吗???@bhavana是的,就像从数据库加载数据之前一样我在onpreexecute和onpostexecute中显示了一个进度条,我调用了方法名displaydemo,其完整代码是在topok中编写的……然后检查传递给Async类的值……可能你传递的值是null…这就是应用程序崩溃的原因。@bhavana c我正在进行选择,以便从一个类中显示哪一行,并使用bundle将其传递给另一个类我在SimpleCorsorAdapter中也使用过它,但知道它在获取时显示null值,因此无法获取我应该写入的内容。Rok我已删除数据(textview)小部件,因为我在以前的代码格式中使用它,所以问题得到解决,但尽管我的db有这样的数据,但它不显示recordOk,我删除了数据(textview)小部件,因为我在以前的代码格式中使用它,所以问题得到解决,但尽管我的db有这样的数据,它不显示该记录
Cursor c = ourDatabase.query(DATABASE_TABLE, columns, KEY_BEDROOMS
        + "=\'" +l+"\'", null, null, null, null);