我已经为数据库添加了内容,并创建了一个列表视图以检索数据并将其转换为列表视图,但是它没有出现在我的应用程序中。有人可以帮我看看我的代码出了什么问题吗?
这是我的阵列适配器
public class Foodlist extends ArrayAdapter<Food> {
private Activity context;
private List<Food> foodlists;
public Foodlist(Activity context, List<Food> foodlists){
super(context, R.layout.list_layout, foodlists);
this.context = context;
this.foodlists = foodlists;
}
@NonNull
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = context.getLayoutInflater();
View listViewItem = inflater.inflate(R.layout.list_layout, null , true);
TextView textViewName = (TextView)
listViewItem.findViewById(R.id.textViewName);
TextView textViewType = (TextView)
listViewItem.findViewById(R.id.textViewType);
Food food = foodlists.get(position);
textViewName.setText(food.getFoodName());
textViewType.setText(food.getFoodType());
return listViewItem;
}
}
这是我的课程文件
package com.example.asus.mobilefoodpicker;
public class Food {
private String foodid,foodname, foodtype;
public Food(){
}
public Food(String id, String name, String type) {
this.foodid = id;
this.foodname = name;
this.foodtype = type;
}
public String getFoodId() {
return foodid;
}
public String getFoodName() {
return foodname;
}
public String getFoodType() {
return foodtype;
}
}
将显示活动列表视图
package com.example.asus.mobilefoodpicker;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Spinner;
import android.widget.Toast;
import com.firebase.client.Firebase;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
import java.util.ArrayList;
import java.util.List;
public class Addbreakfast extends AppCompatActivity {
private EditText EnterFN;
private Button buttonadd;
Spinner spinnerfoodtype;
DatabaseReference databasemobilefoodpicker;
ListView listViewFood;
List<Food> foodlists;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_addbreakfast);
databasemobilefoodpicker =
FirebaseDatabase.getInstance().getReference("food");
EnterFN = (EditText)findViewById(R.id.Efn);
buttonadd = (Button) findViewById(R.id.sbtn);
spinnerfoodtype = (Spinner) findViewById(R.id.spinner);
foodlists = new ArrayList<>();
listViewFood = (ListView) findViewById(R.id.listViewFood);
buttonadd.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
addfood();
}
});
}
@Override
protected void onStart() {
super.onStart();
databasemobilefoodpicker.addValueEventListener(new ValueEventListener()
{
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
foodlists.clear();
for(DataSnapshot foodSnapshot : dataSnapshot.getChildren()){
Food food = foodSnapshot.getValue(Food.class);
foodlists.add(food);
}
Foodlist adapter = new Foodlist(Addbreakfast.this, foodlists);
listViewFood.setAdapter(adapter);
}
@Override
public void onCancelled( DatabaseError databaseError) {
}
});
}
private void addfood(){
String name = EnterFN.getText().toString().trim();
String foodtype = spinnerfoodtype.getSelectedItem().toString();
if(!TextUtils.isEmpty(name)){
String id = databasemobilefoodpicker.push().getKey();
Food food = new Food(id,name,foodtype);
databasemobilefoodpicker.child(id).setValue(food);
Toast.makeText(this,"Food Added", Toast.LENGTH_LONG).show();
}else{
Toast.makeText(this, "You should enter a name",
Toast.LENGTH_LONG).show();
}
}
}
列表视图将显示数据库中的数据,但文本不可见。