如何不在列表视图中显示从 Parse.com 检索到的空字段
How to not display the empty field retreived from Parse.com in listview
我在解析服务器中创建了三列 "class1" "class2 "class3"。并将每列检索到不同的 activity。
table
一些 table 字段是空的。所以当我检索它时,它在列表视图中显示空字段
并给出错误 "Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference" for undefined field
我知道我可以为每一列创建不同的 类 并检索但想知道有什么方法可以不在列表视图中显示空字段。
Activity.java
public class topics_class1 extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_topics_class1);
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 (ParseObject topic : objects){
topics1.add(topic.getString("class_2"));
}
listView.setAdapter(arrayAdapter);
}
else {
e.printStackTrace();
}
}
});
}
}
只需跳过空值。
String text = topic.getString("class_2");
if(text != null && !text.isEmpty()) {
//topics1.add(..
}
更新:如果你需要 "empty cell" 然后分配空字符串而不是 null:
topics1.add("");
我在解析服务器中创建了三列 "class1" "class2 "class3"。并将每列检索到不同的 activity。 table
一些 table 字段是空的。所以当我检索它时,它在列表视图中显示空字段 并给出错误 "Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference" for undefined field
我知道我可以为每一列创建不同的 类 并检索但想知道有什么方法可以不在列表视图中显示空字段。
Activity.java
public class topics_class1 extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_topics_class1);
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 (ParseObject topic : objects){
topics1.add(topic.getString("class_2"));
}
listView.setAdapter(arrayAdapter);
}
else {
e.printStackTrace();
}
}
});
}
}
只需跳过空值。
String text = topic.getString("class_2");
if(text != null && !text.isEmpty()) {
//topics1.add(..
}
更新:如果你需要 "empty cell" 然后分配空字符串而不是 null:
topics1.add("");