Bir parça oluşturdum ve ağ bağlantısı için Retrofit kullanarak bir liste görünümü doluyum ve istek aldım ve liste görünümünü doldurmak için özel adaptör oluşturdum:Listemde bir çeşit tembel yük nasıl yapılır android studio
public class TransactionsAdapter extends BaseAdapter {
ArrayList<Transactions> transactions;
public TransactionsAdapter(ArrayList<Transactions> transactions) {
this.transactions=transactions;
}
@Override
public int getCount() {
if (transactions.size()<20) {
return transactions.size();
}else return 20;
}
@Override
public Object getItem(int position) {
return transactions.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view=null;
ViewHolder viewHolder = null;
if(convertView == null)
{
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.izvjestaji_item,parent,false);
viewHolder = new ViewHolder(view);
view.setTag(viewHolder);
}
else{
view = convertView;
viewHolder= (ViewHolder) view.getTag();
}
Transactions transactions = (Transactions) getItem(position);
if(transactions != null) {
viewHolder.datum.setText(transactions.getShortDate());
viewHolder.partner.setText(transactions.getMerchantName());
String doublestring=Double.toString(transactions.getTransactionPointsAmount());
String doublestring1=Double.toString(transactions.getSalesAmount());
viewHolder.iznos.setText(doublestring1);
viewHolder.brojbodova.setText(doublestring);
}
return view;
}
private class ViewHolder{
TextView datum;
TextView partner;
TextView iznos;
TextView brojbodova;
public ViewHolder(View view) {
this.datum = (TextView) view.findViewById(R.id.izvjestaji_datum);
this.partner = (TextView) view.findViewById(R.id.izvjestaji_partner);
this.iznos = (TextView) view.findViewById(R.id.izvjestaji_iznos);
this.brojbodova=(TextView)view.findViewById(R.id.izvjestaji_brojbodova);
}
}
}
Öğe ve liste görünümü için 2 düzen oluşturdum ve her şey olması gerektiği gibi çalışıyor. Şimdi bir çeşit tembel yük veya daha basit bir şey eklemem gerekiyor çünkü sunucunun çok fazla veriyi geri getirme şansı var ve ağ verimliliğini artırmak için 20'ye 20 kadar göstermek istiyorum.
public class Izvjestaji extends Fragment {
// The onCreateView method is called when Fragment should create its View
object hierarchy,
// either dynamically or via XML layout inflation.
ListView list;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle
savedInstanceState) {
// Defines the xml file for the fragment
return inflater.inflate(R.layout.izvjestaji, parent, false);
}
// This event is triggered soon after onCreateView().
// Any view setup should occur here. E.g., view lookups and attaching view
listeners.
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
list=(ListView)view.findViewById(R.id.izvjestaji_list);
showList();
// Setup any handles to view objects here
// EditText etFoo = (EditText) view.findViewById(R.id.etFoo);
}
public void showList(){
NetworkSDK.getInstance().getTransactions(new
Callback<List<Transactions>>() {
@Override
public void onResponse(Call<List<Transactions>> call,
Response<List<Transactions>> response) {
if(response.isSuccess()){
Log.d("Data", String.valueOf(response.isSuccess()));
TransactionsAdapter transactionsAdapter=new
TransactionsAdapter((ArrayList<Transactions>)response.body());
list.setAdapter(transactionsAdapter);
}
}
@Override
public void onFailure(Call<List<Transactions>> call, Throwable t) {
Log.d("Error","Def error");
}
});
}
}
Bu Tüm bunlara dayanarak güçlendirme
public void getTransactions(Callback<List<Transactions>>callback){
Call<List<Transactions>>call =
BaseClient.getService().getTransactions(4,2016);
call.enqueue(callback);
}
Ağ SDK benim kararım İstediğim mevcut tüm işlemleri göstermek benim parçadaki bir liste görünümü olsun: Bu benim parçası kodudur göster ama 20'ye sınırlamanız gerekiyor ve kullanıcı Swipe alttan başka 20 tane göstermesi gerekiyor. Kullanıcı tokatlamak veya benzer bir şey olduğunda bazı indeks numarası göndermek gibi bir fikrim var ama eminim ki daha kolay bir yol var çünkü ben android ile o kadar iyi değilim.
Ben de sonsuz adaptör gibi şeyler denedim ama bir tadilat veya voleybolu gibi gerçekten popüler değil kütüphaneleri kullanmak için izin değilim ve bu bir: o hala https://github.com/commonsguy/cwac-endless artık suppor sağlamıyor ve ben bile emin değilim listenin aşağı kaydırılıp kaydırılmadığını belirlemek için geçerli