标签: android-arrayadapter

如何禁用ListView中的项目

ListViewAlertDialog在Android中有一个设置,我试图添加分隔符作为标题标题来帮助组织信息.我想出了如何显示它们......但它们仍然可由用户选择,这是不好的.

有没有办法禁用Android中可选择的项目ListView?我找到了一种方法isEnabled(int position)来查看某个项目是否已启用,但没有查看是否已禁用该项目.

android listview android-arrayadapter

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

ArrayAdapters的泛型

我在尝试创建通用ArrayAdapter时遇到了问题.这可能与我对Java中的泛型有限的理解有关,并且希望有人可以让我直截了当.基本上我有一个抽象的基本适配器类:

public abstract class BaseAdapter<T> extends ArrayAdapter<T>
{
    ....
    private List<T> items;
    ....
    protected abstract List<T> build(JSONArray jsonArray);
    ....
    @Override
    public T getItem(int position)
    {
        return items.get(position);
    }
    ....
}
Run Code Online (Sandbox Code Playgroud)

然后我有一个扩展此基类的适配器:

public class MyAdapter extends BaseAdapter<BaseModel>
{
    ....
    @Override
    protected List<BaseModel> build(JSONArray jsonArray)
    {
        if (useBaseModel())
        {
            return BaseModel.buildBaseModels(jsonArray); //returns List<BaseModel>
        }
        else
        {
            return SubclassModel.buildSubclassModels(jsonArray); //returns List<SubclassModel>
        }
    }
    ....
}
Run Code Online (Sandbox Code Playgroud)

模型定义为:

public class BaseModel{...}

public class SubclassModel extends BaseModel{....}
Run Code Online (Sandbox Code Playgroud)

这不会编译,因为即使SubclassModel扩展了BaseModel,它们的列表也不相同.这个线程(将List <SubClass>强制转换为List <BaseClass>的最有效方法)解释了这一点,并说使用它代替:

List<? extends BaseModel> 
Run Code Online (Sandbox Code Playgroud)

当我改为: …

java generics android android-arrayadapter

7
推荐指数
1
解决办法
4008
查看次数

ArrayAdapter的默认布局

我目前正在使用阵列适配器.我在网上遇到的所有示例都使用了阵列适配器的单独布局.我想知道它是否有默认布局.我的代码是这样的

ArrayAdapter<String> adapt = new  ArrayAdapter<String>(this,,item);
Run Code Online (Sandbox Code Playgroud)

第二个参数应该是什么,以便我不指定资源布局并使用其默认值?

android android-arrayadapter

7
推荐指数
1
解决办法
8907
查看次数

你如何在LayoutInflater类的Android的inflate方法中使用第二个参数

所述的充气方法LayoutInflater抽象类具有作为取充气方法的第二个参数ViewGroup根.从文档中,它被称为"可选视图,作为生成的层次结构的父级".

有人可以举例说明如何使用这个参数吗?那你会放在那里?A ViewGroup可以是任何类型的布局LinearLayout.

我还不太明白如何处理这个参数.如果您正在膨胀的视图不是此处输入的布局的一部分,那么它将给出错误.不明白它的目的.

更多来自文档:

public View inflate (XmlPullParser parser, ViewGroup root)

Added in API level 1 Inflate a new view hierarchy from the specified xml node. Throws InflateException if there is an error.

出于性能原因,重要的是,视图通胀在很大程度上依赖于在构建时完成的XML文件的预处理.因此,目前还不能使用LayoutInflaterXmlPullParser过在运行时一个普通的XML文件.

参数解析器包含视图层次结构描述的XML dom节点.

root可选视图是生成的层次结构的父级.返回膨胀层次结构的根视图.如果提供了root,则这是根视图; 否则它是膨胀的XML文件的根.

android android-arrayadapter layout-inflater

7
推荐指数
1
解决办法
3626
查看次数

在ListView中删除ArrayAdapter <String>中的项目

我想在ListView中删除一个单击的项目.

解决方案是使用ArrayList而不是String [];

这是我的代码:

公共类MyDialogFragment扩展DialogFragment {

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {

    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    builder.setTitle("Critères Supplémentaires");
    builder.setNegativeButton("Cancel",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {
                    onCancel(dialog);
                }
            }
    );

    LayoutInflater inflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View mView = inflater.inflate(R.layout.fragment_dialog, null);
    ListView mListView = (ListView) mView.findViewById(R.id.lvListe);

    String[] mValues = {"Orientation", "Nombre de Chambres", "Nombre de Salle de bains", "Nombre de toilettes", "Cave", "Parking", "Garage", "Jardin"};

    final ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, mValues);
    mListView.setAdapter(adapter);
    mListView.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() { …
Run Code Online (Sandbox Code Playgroud)

android listview android-arrayadapter

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

如何以横向显示AutoCompleteTextView建议

AutoCompleteTextView在纵向模式的下拉列表中显示它的建议.我想在对话框或横向模式的下拉列表中显示建议,此处EditText和键盘全屏显示.

我应该在适配器中使用哪种布局将提示显示为横向模式下的对话框.我目前正在使用android.R.layout.simple_dropdown_item_1line.

android landscape autocompletetextview android-arrayadapter

7
推荐指数
2
解决办法
2928
查看次数

DisplayListCanvas在未绑定的RenderNode上启动(没有mOwningView)

我正在尝试AutoCompleteTextView使用我的自定义填充ArrayAdapter.我认为添加显示值可以正常工作.唯一的问题是没有显示下拉列表.有人知道如何看到这个下拉列表吗?每次我都会看到下拉列表,我可以看到日志消息说:

DisplayListCanvas:DisplayListCanvas在未绑定的RenderNode上启动(没有mOwningView)

我的适配器代码:

public class UserSearchAdapter extends ArrayAdapter<Profile> {

    Context context;
    ArrayList profiles;


    public UserSearchAdapter(Context context, int resource, ArrayList<Profile> objects) {
        super(context, resource, objects);
        this.context = context;
        this.profiles = objects;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        if (convertView == null) {
            convertView = LayoutInflater.from(this.getContext())
                    .inflate(R.layout.single_user_item, parent, false);
        }

        Profile profile = (Profile) profiles.get(position);

        TextView text = (TextView) convertView.findViewById(R.id.single_user_name_text);
        text.setText(profile.getDisplayName());

        return convertView;
    }

}
Run Code Online (Sandbox Code Playgroud)

我的MainActivity代码:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_member_supervisor); …
Run Code Online (Sandbox Code Playgroud)

android autocompletetextview android-arrayadapter

7
推荐指数
1
解决办法
7137
查看次数

Android如何覆盖ArrayAdapter的过滤器?

嘿各位我在这里的第一篇文章...我试着写一个自定义过滤器来过滤我的arrayadapter中的arraylist,这样当我点击按钮时我的listview被过滤了.

例如,当我点击我的按钮时

public void onClick(View arg0) {
            String abc = "abc";
            m_adapter.getFilter().filter(abc);
        }
Run Code Online (Sandbox Code Playgroud)

但是,当我点击我的按钮时,我的应用程序意外终止.这是我的arrayadapter和过滤器的代码.请帮我.

package com.ntu.rosemobile.searchlist;

public class ResultsAdapter extends ArrayAdapter<SearchItem> implements Filterable{

public ArrayList<SearchItem> subItems;
public ArrayList<SearchItem> allItems;
private LayoutInflater inflater;
private PTypeFilter filter;

public ResultsAdapter(Context context, int textViewResourceId, ArrayList<SearchItem> items) {

    super(context, textViewResourceId, items);
        this.subItems = items;
        this.allItems = this.subItems;
        inflater= LayoutInflater.from(context);
}

@Override
public Filter getFilter() {
    if (filter == null){
      filter  = new PTypeFilter();
    }
    return filter;
  }



//@Override
public View getView(int position, View convertView, ViewGroup …
Run Code Online (Sandbox Code Playgroud)

android arraylist filter android-arrayadapter

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

ArrayAdapter数据集中的元素数为零

我正在尝试构建一个包含行的自定义视图的列表,每行包含一个图像视图和两个文本视图.

为了做到这一点,我扩展了ArrayAdapter类(称为PostersArrayAdapter)并重写了getView()方法,以便在数据和行布局之间建立正确的连接.

但是,当我尝试使用一些PosterData类(我的实现)构造一个带有一些数据的PostersArrayAdapter时,结果是适配器为空,意味着getCount()返回零并且listView为空.

任何人都可以建议我做错了什么?我依赖于我在这里找到的代码 - http://www.vogella.de/articles/AndroidListView/article.html

非常感谢你!

这里是相关的代码:( PosterData类只是一个有两个字符串字段的类)

public class PostersListActivity extends ListActivity {
final private int NUM_OF_PICS = 2;
private ContentGetter   cg;
private PosterData[]    posters;
private ListView        listView;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    cg = new ContentGetter(NUM_OF_PICS);
    try 
    {
        posters = cg.parseIndexFile();
        int res = cg.DownloadPosterPics(1);

    } 
    catch (ClientProtocolException e) 
    {
        e.printStackTrace();
    } 
    catch (IOException e) 
    {
        e.printStackTrace();
    }

    // Use our own list adapter
    listView = (ListView)findViewById(android.R.id.list);
    //listView.setAdapter((ListAdapter) new ArrayAdapter<String>(this,R.layout.list_item,R.id.title,titles));
    PostersArrayAdapter postersAdapter = new …
Run Code Online (Sandbox Code Playgroud)

android listview android-arrayadapter

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

什么是textViewResourceId?

我一直试图弄清楚如何使用ArrayAdapter类,并从文档:http://developer.android.com/reference/android/widget/ArrayAdapter.html,我看到构造函数需要一个名为textViewResourceId的整数.

这究竟是什么?

编辑:从更多的研究和答案,看起来它必须是我在包含接口代码的xml文件中定义的TextView的id.但我在这里看到了这个例子:

ArrAdapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1,myArrayList)

那么如何在这里使用android.R.layout.simple_list_item_1?这到底是什么意思?我只熟悉使用R.id.idOfMyViewHere

android android-arrayadapter

6
推荐指数
2
解决办法
7115
查看次数