내 응용 프로그램이 Firebase에서 데이터를 검색 한 다음 조각에 표시해야합니다. Firebase에는 데이터가 있지만 애플리케이션을 시작할 때이 비어 있습니다.하지만 버튼을 누르고 돌아 가면 애플리케이션이 데이터를 채우고 표시합니다.응용 프로그램 시작시 CustomAdapter가 비어 있습니다.
주요 활동은 데이터, 내가 ArrayList를
와 사용자 정의 어댑터를 사용, 조각을 사용하여이 샘플이 코드
class CustomAdapter extends BaseAdapter {
private Context c;
private ArrayList<Item> items;
CustomAdapter(Context c, ArrayList<Item> items) {
super();
this.c = c;
this.items = items;
Log.e("Hee",items.size()+"");
}
@Override
public int getCount() {
return items.size();
}
@Override
public Object getItem(int position) {
return items.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, final ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) parent.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if(convertView==null)
{
convertView= inflater.inflate(R.layout.model,parent,false);
}
final TextView titleTxt= (TextView) convertView.findViewById(R.id.titleTxt);
TextView priceTxt= (TextView) convertView.findViewById(R.id.priceTxt);
TextView descTxt= (TextView) convertView.findViewById(R.id.descTxt);
ImageView image = (ImageView) convertView.findViewById(imageView);
final Item s = (Item) this.getItem(position);
titleTxt.setText(s.getSale());
priceTxt.setText(s.getPrice()+"€");
descTxt.setText(s.getDescription());
String url = s.getUrl();
if(url != null){
Glide.with(c).load(url).into(image);
}else{
Glide.with(c).load("http://www.video-furn.com/images/icons/AVFI-Image-not-available-icon.jpg").into(image);
}
//ONITECLICK
convertView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String title = "Select option";
CharSequence [] itemlist = {"Chiama", "Nuovo messaggio",};
AlertDialog.Builder builder = new AlertDialog.Builder(c);
builder.setTitle(title);
builder.setItems(itemlist, new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int witch) {
switch(witch){
case 0:
Intent phone_intent = new Intent(Intent.ACTION_DIAL);
phone_intent.setData(Uri.parse("tel:"+s.getPhone()));
c.startActivity(phone_intent);
break;
case 1:
Intent send_intent = new Intent(Intent.ACTION_VIEW);
send_intent.setData(Uri.parse("sms:"+s.getPhone()));
c.startActivity(send_intent);
break;
default:
break;
}
}
});
AlertDialog alert = builder.create();
alert.setCancelable(true);
alert.show();
}
});
return convertView;
}}
조각입니다 video
입니다 :
에게public class MainActivity_Fragment extends Fragment {
private DatabaseReference mDatabase;
private FirebaseHelper helper;
private ListView listView;
private CustomAdapter adapter;
private View view;
private Snackbar snackbar;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
mDatabase = FirebaseDatabase.getInstance().getReference();
helper = new FirebaseHelper(mDatabase);
view = inflater.inflate(R.layout.activity_main_fragment, container, false);
adapter = new CustomAdapter(getActivity(), helper.retrieve());
FloatingActionButton fabButton = (FloatingActionButton) view.findViewById(R.id.fabButton);
listView = (ListView) view.findViewById(R.id.listview);
listView.setAdapter(adapter);
listView.setVisibility(View.VISIBLE);
connectionState();
fabButton.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
addItem();
}
});
Log.e("list adapter--",""+adapter.getCount());
return view; }