从 Parse Server 检索单列数据并显示在列表视图中
Retriving Single column data from Parse Server and display in a listview
我是 android 的新手,对数据库了解不多。
我在解析服务器中创建了 class 名为“topics
”并手动添加了“topicName
”列。
现在我想在列表视图中检索此主题名称 value/Strings,但出现错误
Attempt to invoke virtual method 'void
android.widget.ListView.setAdapter(android.widget.ListAdapter)' on a
null object reference
如有任何帮助,我们将不胜感激。
代码:
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>
我是 android 的新手,对数据库了解不多。
我在解析服务器中创建了 class 名为“topics
”并手动添加了“topicName
”列。
现在我想在列表视图中检索此主题名称 value/Strings,但出现错误
Attempt to invoke virtual method 'void android.widget.ListView.setAdapter(android.widget.ListAdapter)' on a null object reference
如有任何帮助,我们将不胜感激。
代码:
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>