标签: android-arrayadapter

Android - ListView在到达结束时加载更多项目

我已经成功实现了一个listView,其中每一行都是我创建的对象.我有一个接口读取一些对象并返回它们的数组,我将其传递给适配器构造函数.我想要做的是,由于列表可能很长,我的界面允许每次读取更多的项目(第0页,第1页......)所以我想,当用户到达列表的最后一行时,加载下一页并将其插入listView.这样做的正确方法是什么?我实际上希望"到达列表末尾"触发回调,我可以请求更多页面并将它们加载到列表中.我的主要问题有点旧,但我不介意使用baseAdapter,两者都可以工作,我只是不知道什么对任务更好.

android android-arrayadapter android-listview

20
推荐指数
1
解决办法
3万
查看次数

在android中扩展ArrayAdapter

我需要getFilter()从类中重写一个方法,ArrayAdapter 然后在github中找到了源代码

//package name

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import android.content.Context;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.Filter;
import android.widget.Filterable;

public class CustomAdapter<T> extends ArrayAdapter<T> implements Filterable{

    private ArrayList<T> mOriginalValues;
    private List<T> mObjects;
    private CustomFilter mFilter;
    private final Object mLock = new Object();
    public CustomAdapter(Context context, int textViewResourceId, T[] objects) {
        super(context, textViewResourceId, objects);

        mObjects = Arrays.asList(objects);
        // TODO Auto-generated constructor stub
    }

    @Override
    public Filter getFilter() {
        // TODO Auto-generated method stub
        if (mFilter …
Run Code Online (Sandbox Code Playgroud)

java android inner-classes android-arrayadapter

19
推荐指数
2
解决办法
2万
查看次数

按字母排序的Android排序列表视图

所以我试图对一个简单的arrayadapter listview进行排序.这是我尝试过的:

ListView lv;
String[] months = {
        "January",
        "February",
        "March",
        "April",
        "May",
        "June",
        "July",
        "August",
        "September",
        "October",
        "November",
        "December"
};

ArrayAdapter<String> adapter;
ArrayList<String> list;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    lv = (ListView) findViewById(R.id.listView1);
    lv.setFastScrollEnabled(true);
    adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, months);
    lv.setAdapter(adapter);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // TODO …
Run Code Online (Sandbox Code Playgroud)

sorting android listview android-arrayadapter

19
推荐指数
3
解决办法
7万
查看次数

在arrayadapter中交换数据时,从绑定器存根实现中捕获了RuntimeException

public class MainActivity extends AppCompatActivity {

     ArrayList<String> list = new ArrayList<>();

     ArrayAdapter<String> adapter;

     ArrayList<String> data1 = new ArrayList<>();

     ArrayList<String> data2 = new ArrayList<>();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    for (int i = 0 ; i< 10 ;i++){
        data1.add(String.valueOf(i));
    }

    for (int i = 20; i < 30; i++){
        data2.add(String.valueOf(i));
    }

    Spinner spinner = (Spinner) findViewById(R.id.demo);
    adapter = new ArrayAdapter<>(this,android.R.layout.simple_dropdown_item_1line,list);
    spinner.setAdapter(adapter);
}

private void change(boolean which){
    if (which){
        list.clear();
        list.addAll(data1);

    }else{
        list.clear();
        list.addAll(data2);

    }
    adapter.notifyDataSetChanged();
}

@Override
public …
Run Code Online (Sandbox Code Playgroud)

java android spinner android-arrayadapter android-windowmanager

19
推荐指数
1
解决办法
2818
查看次数

arrayAdapter只返回一个位置,Android

我将arrayList设置为12个项目,但是arrayAdapter只返回屏幕上的一个项目,为什么会这样?它应该在列表中显示12个项目.

  public class MainActivity extends Activity {

ArrayList<CheckBoxInfo> cfo = new ArrayList<CheckBoxInfo>();
CheckBoxInfo cbr;
private ListAdapter MyAdapter;
ListView listview;
MyAdapter myAdapter;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    cbr = new CheckBoxInfo();
    cbr.checkBoxName = "dfdjklfjdkljf";
    cbr.checkBoxState = true;

      for(int i = 0; i <12; i++){
            cfo.add(cbr);
      }

      Toast.makeText(MainActivity.this, "size: " + cfo.size(), Toast.LENGTH_SHORT).show();

    listview = (ListView) findViewById(R.id.listView);
    myAdapter = new MyAdapter(cfo, this);
    listview.setAdapter(myAdapter);
}

public class MyAdapter extends ArrayAdapter<CheckBoxInfo> {

    private List<CheckBoxInfo> checkBoxList;
    private Context context;

    public MyAdapter(List<CheckBoxInfo> infoList, …
Run Code Online (Sandbox Code Playgroud)

android android-arrayadapter

18
推荐指数
1
解决办法
8498
查看次数

android小部件ArrayAdapter createViewFromResource的NullPointerException

我是android ArrayAdapters的新手,我在填充ListView时面临一个空指针异常.我用来填充listview的数据不是null,我已经检查过了.整个事情在第一次加载时工作正常,但是一旦我向下滚动到列表的末尾,应用程序崩溃了.

这是我的堆栈跟踪:

E/AndroidRuntime? FATAL EXCEPTION: main
java.lang.NullPointerException
        at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:394)
        at android.widget.ArrayAdapter.getView(ArrayAdapter.java:362)
        at android.widget.AbsListView.obtainView(AbsListView.java:2386)
        at android.widget.ListView.makeAndAddView(ListView.java:1769)
        at android.widget.ListView.fillDown(ListView.java:672)
        at android.widget.ListView.fillGap(ListView.java:636)
        at android.widget.AbsListView.trackMotionScroll(AbsListView.java:5201)
        at android.widget.AbsListView$FlingRunnable.run(AbsListView.java:4358)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
        at android.view.Choreographer.doCallbacks(Choreographer.java:555)
        at android.view.Choreographer.doFrame(Choreographer.java:524)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)
        at android.os.Handler.handleCallback(Handler.java:615)
        at android.os.Handler.dispatchMessage(Handler.java:92)
        at android.os.Looper.loop(Looper.java:137)
        at android.app.ActivityThread.main(ActivityThread.java:5059)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555)
        at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)

这是我的活动代码:"我已经标记了我填充listView的行"

public class AddPersonActivity extends Activity
    implements
    PlusClient.OnPeopleLoadedListener,
    PlusClient.ConnectionCallbacks,
    PlusClient.OnConnectionFailedListener {

private static final String TAG = "AddPersonActivity";

private static final String STATE_RESOLVING_ERROR = "resolving_error";

private ArrayAdapter sListAdapter; …
Run Code Online (Sandbox Code Playgroud)

android android-arrayadapter android-layout android-listview

18
推荐指数
2
解决办法
1万
查看次数

ListView中的重复条目

我在ListView中获得了重复的项目.向后和向下滚动有时会更改项目顺序.我用谷歌搜索并发现许多线程报告了这个错误,但没有一个帮助我解决我的问题.

这是我的代码:

活动:

package com.github.progval.SeenDroid;

import java.util.ArrayList;
import java.util.List;

import com.github.progval.SeenDroid.lib.Connection;
import com.github.progval.SeenDroid.lib.Message;
import com.github.progval.SeenDroid.lib.MessageFetcher;
import com.github.progval.SeenDroid.lib.Query.ParserException;

import android.app.Activity;
import android.app.ListActivity;
import android.content.SharedPreferences;
import android.os.Bundle;

public class ShowUserActivity extends ListActivity {
    private Connection connection;

    public ArrayList<Message> listMessages = new ArrayList<Message>();
    public MessageAdapter adapter;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.profile);
        this.connection = new Connection();
        this.setTitle(R.string.homefeed_title);


        this.listMessages = new MessageFetcher(this.connection).fetchUser();
        this.bindUi();
    }

    private void bindUi() {
        this.adapter = new MessageAdapter(this, this.listMessages); …
Run Code Online (Sandbox Code Playgroud)

java android listview listactivity android-arrayadapter

17
推荐指数
2
解决办法
3万
查看次数

Android微调器显示对象引用而不是字符串

好的,我的旋转器有问题.其中包含从Web服务中提取的数据.我所遇到的问题是,当没有点击微调器而不是显示微调器中第一个项目的字符串时,它会显示一个对象引用.

我看了相关的问题,但仍然看不到我缺少什么,是否像缺少toString参考一样简单?

这是填充微调器的代码

private void buildDrinkDropDown() {

        List<NameValuePair> apiParams = new ArrayList<NameValuePair>(1);
        apiParams.add(new BasicNameValuePair("call", "drinkList"));

        bgt = new BackGroundTask(MAP_API_URL, "GET", apiParams);

        try {

            JSONArray drinks = bgt.execute().get();

            for (int i = 0; i < drinks.length(); i++) {

                JSONObject d = drinks.getJSONObject(i);

                String id = d.getString(TAG_ID_DRINK);
                String createdAt = d.getString(TAG_CREATED_AT);
                String updatedAt = d.getString(TAG_UPDATED_AT);
                String price = d.getString(TAG_PRICE);
                String name = d.getString(TAG_NAME);

                drinkList.add(new Drink( createdAt ,id, name, price,updatedAt ));
            }

            drinkField = (Spinner) findViewById(R.id.countryField); 
            DrinkAdapter dAdapter = new DrinkAdapter(this, android.R.layout.simple_spinner_item, drinkList); …
Run Code Online (Sandbox Code Playgroud)

android spinner android-arrayadapter

17
推荐指数
3
解决办法
7596
查看次数

调用ArrayAdapter中的getView()时

当创建一个定制adapterListViewandroid系统中,我看到,我要创建一个类的扩展ArrayAdapter类并实现getView(..)方法.

所有这一切都没问题,但我想知道调用方法和执行的顺序.即在哪个代码点getView()被调用?

java layout android adapter android-arrayadapter

16
推荐指数
2
解决办法
1万
查看次数

使用arrayadapter过滤ListView

我正在尝试使用arrayadapter过滤listview.arraydapter参数是String [] [].问题是任何事情都会发生.我必须覆盖Filter接口?在那种情况下,有人可以提供一些提示吗?

我试图过滤的数组的每个位置都是这样的

 galleryValues[0][0] -> "tiulo"
              [0][1] -> "desc"
              [0][2] -> "etc"
Run Code Online (Sandbox Code Playgroud)

我试图过滤它:

lstContinente = (ListView)findViewById(R.id.list);
lstContinente.setTextFilterEnabled(true);
adapter = new PortaitArrayAdapter(cx,galleryValues);   
lstContinente.setAdapter(adapter);

ed_busqueda.addTextChangedListener(new TextWatcher() {           
    public void afterTextChanged(Editable s) {}      
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    // TODO Auto-generated method stub       
}        
public void onTextChanged(CharSequence s, int start, int before, int count) {
    adapter.getFilter().filter(s.toString());
    adapter.notifyDataSetChanged();                 
}        
});
Run Code Online (Sandbox Code Playgroud)

适配器代码:

public class PortaitArrayAdapter extends ArrayAdapter<String> {
    private final Context context;
    private final String[][] values;
    private List<Imagen> …
Run Code Online (Sandbox Code Playgroud)

android filter android-arrayadapter

16
推荐指数
1
解决办法
2万
查看次数