簡體   English   中英

從Parse Server檢索單列數據並顯示在列表視圖中

[英]Retriving Single column data from Parse Server and display in a listview

我是android新手,對數據庫沒有太多了解。

我創建的類名為“ topics在解析服務器”,並手動添加“ topicName ”一欄。

現在我想在Listview中檢索此topicName值/字符串,但出現錯誤

嘗試在null對象引用上調用虛擬方法'void android.widget.ListView.setAdapter(android.widget.ListAdapter)'

任何幫助,將不勝感激。

碼:

public class topics_class1 extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    final ArrayList<String> topics1 = new ArrayList<>();
    final ListView listView = findViewById(R.id.listView_topics_class1);
    final ArrayAdapter arrayAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, topics1);

    ParseQuery<ParseObject> query = ParseQuery.getQuery("topics");        
    query.findInBackground(new FindCallback<ParseObject>() {
        @Override
        public void done(List<ParseObject> objects, ParseException e) {
            if (e == null){

                for (int i=0; i< objects.size(); i++) {
                    topics1.add(objects.get(i).getString("topicName"));
                }
                listView.setAdapter(arrayAdapter);

                }

            else {
                e.printStackTrace();
            }
        }

    });
 }
}

Xml:

<?xml version="1.0" encoding="utf-8"?>

<ListView
    android:id="@+id/listView_topics_class1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_alignParentTop="true"
    android:layout_marginTop="89dp" />

錯誤本身說明

Attempt to invoke virtual method 'void android.widget.ListView.setAdapter(android.widget.ListAdapter)' on a null object reference

您沒有setContentView(layout) 這就是為什么您遇到錯誤嘗試設置setContentView(R.layout.layoutname);

並相應地獲取ListView

final ListView listView = (ListView)findViewById(R.id.listView_topics_class1);

讓我知道你還有其他問題嗎

public class MainActivity extends Activity {
    ListView lv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        lv=(ListView) findViewById(R.id.listView);
        ArrayAdapter adapter = new ArrayAdapter(this,
                android.R.layout.simple_list_item_1, android.R.id.text1, planets);

               ParseQuery<ParseObject> query = ParseQuery.getQuery("topics");
//query.selectKeys(Arrays.asList("topicName"));
query.findInBackground(new FindCallback<ParseObject>() {
    @Override
    public void done(List<ParseObject> objects, ParseException e) {
        if (e == null){


           // Toast.makeText(topics_class1.this, "success", Toast.LENGTH_LONG).show();
            for (int i=0; i< objects.size(); i++) {
                topics1.add(objects.get(i).getString("topicName"));
            }
            listView.setAdapter(arrayAdapter);

            }

        //}
        else {
            e.printStackTrace();
        }
    }

});
    }
}

按照這種方式實施

XML布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 

xmlns:tools="http://schemas.android.com/tools" 

android:layoutwidth="matchparent" 

android:layoutheight="matchparent" 

android:paddingBottom="@dimen/activityverticalmargin" 

android:paddingLeft="@dimen/activityhorizontalmargin" 

android:paddingRight="@dimen/activityhorizontalmargin" 

android:paddingTop="@dimen/activityverticalmargin" 

tools:context=".MainActivity" > 

<ListView android:layoutwidth="fillparent" 

android:layoutheight="fillparent" 

android:id="@+id/listView"> 

</ListView> 

</LinearLayout> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM