标签: android-arrayadapter

SpinnerAdapter中getView和getDropDownView之间的区别

当您实现SpinnerAdapter时,您将获得getDropDownView,它与getView您需要扩展时的不同之处BaseAdapter.

android android-arrayadapter baseadapter android-spinner

61
推荐指数
4
解决办法
3万
查看次数

android中的ArrayAdapter创建简单的listview

我尝试Activity在Android中创建一个,此活动只包含ListView其他内容.

据我所知填写列表视图我们需要使用ArrayAdapter.

所以要了解ArrayAdapter,我已阅读以下链接:

http://developer.android.com/reference/android/widget/ArrayAdapter.html

但我仍然无法理解它!

最大的疑问之一是为什么构造函数需要TextView资源ID而我的活动没有任何TextViews我应该给它什么?

我并不是说这是唯一的构造函数,只是因为我无法理解它背后的逻辑.

为了创建一个简单的列表视图,我还提到了以下链接:

使用ArrayAdapter示例的简单ListView.

但我的主要疑问是它为什么需要TextView资源ID呢?

如果有人能用一个例子解释它,那将非常有帮助.

编辑:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
          android.R.layout.simple_list_item_1, android.R.id.text1, values);
Run Code Online (Sandbox Code Playgroud)

android listview android-arrayadapter

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

android listview项目高度

为什么当我使用SimpleCursorAdapter for ListView时,我在ListView中有像这样的项高度 - 列表视图图像

(我的代码基于)

但是当使用数组Listview项目有很大的高度

listview大

(我基于学习listview )

项目列表视图的行布局是

<?xml version="1.0" encoding="utf-8"?>
<TextView android:id="@+id/text1"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
Run Code Online (Sandbox Code Playgroud)

所以我的问题是为什么使用ArrayAdapter和SimpleCursorAdapter时行高的差异?

android listview row android-arrayadapter simplecursoradapter

51
推荐指数
4
解决办法
12万
查看次数

android:smoothScrollToPosition()无法正常工作

在将一个元素添加到与listview关联的arrayadapter之后,我试图平滑地滚动到列表的最后一个元素.问题是它只是滚动到一个随机位置

arrayadapter.add(item);
//DOES NOT WORK CORRECTLY:
listview.smoothScrollToPosition(arrayadapter.getCount()-1);

//WORKS JUST FINE:
listview.setSelection(arrayadapter.getCount()-1);
Run Code Online (Sandbox Code Playgroud)

android listview selection smooth-scrolling android-arrayadapter

51
推荐指数
5
解决办法
5万
查看次数

如何在ArrayAdapter上设置onClickListener?

我正在上课,如下所示

// All necessary imports are here

public class More extends Activity {

    String[] MoreItems = { "Transfers", "Budgets", "Branches", "Tools", "News",
            "Customer Service", "Settings", "Help", "About" };

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.more_view);

        ListView moreListView = (ListView) findViewById(R.id.moreListView);
        MoreListAdapter listAdapter = new MoreListAdapter();
        moreListView.setAdapter(listAdapter);

        // accountsTypeListView.setOnItemClickListener(listClickListner);
    }

    class MoreListAdapter extends ArrayAdapter<String> {
        MoreListAdapter() {
            super(More.this, R.layout.list_item, MoreItems);
        }

        public View getView(int position, View convertView, ViewGroup parent) {
            View row;

            if (convertView == null) {
                LayoutInflater inflater = …
Run Code Online (Sandbox Code Playgroud)

android listview android-arrayadapter

46
推荐指数
3
解决办法
8万
查看次数

ArrayAdapter中的ListView顺序在滚动时混淆了

我在自定义ArrayAdapter中有一个ListView,它在每行中显示一个图标ImageView和一个TextView.当我使列表足够长以允许您滚动它时,顺序开始正确,但是当我开始向下滚动时,一些较早的条目开始重新出现.如果我向上滚动,旧订单会更改.反复执行此操作最终会导致整个列表顺序看似随机.因此,滚动列表要么导致子顺序更改,要么绘图未正确刷新.

什么可能导致这样的事情发生?我需要将项目显示给用户的顺序与它们添加到ArrayList的顺序相同,或者至少保持一个静态顺序.如果我需要提供更详细的信息,请告诉我.任何帮助表示赞赏.谢谢.

android listview android-arrayadapter

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

使用ArrayAdapter在Android中自定义过滤

我正在尝试过滤使用此ArrayAdapter填充的ListView:

package me.alxandr.android.mymir.adapters;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;

import me.alxandr.android.mymir.R;
import me.alxandr.android.mymir.model.Manga;
import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Filter;
import android.widget.SectionIndexer;
import android.widget.TextView;

public class MangaListAdapter extends ArrayAdapter<Manga> implements SectionIndexer
{
    public ArrayList<Manga> items;
    public ArrayList<Manga> filtered;
    private Context context;
    private HashMap<String, Integer> alphaIndexer;
    private String[] sections = new String[0];
    private Filter filter;
    private boolean enableSections;

    public MangaListAdapter(Context context, int textViewResourceId, ArrayList<Manga> items, boolean enableSections)
    { …
Run Code Online (Sandbox Code Playgroud)

android listview filter android-arrayadapter

40
推荐指数
4
解决办法
7万
查看次数

在列表视图中重绘单行

是否可以重绘一行中的一行ListView?我有一个ListView行是LinearLayouts.我听一个偏好改变,有时候我需要改变一行View内的LinearLayout一个.有没有办法让它重新绘制该行而不调用listview.notifyDatasetChanged()

我试过在视图(内部)上调用view.invalidate(),LinearLayout但它没有重绘行.

android listview view redraw android-arrayadapter

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

ListView可以包含片段

如在,ListView的ELEMENTS可以是片段.我知道您可以将TextView XML分配给ListView以更改其外观,但是您可以将片段添加到ListView中.

例如:我有一个片段.所述片段的XML包含一个ImageView,一些大型TextView和一个小型TextView.Fragment类代码接收Bundle,然后根据内容相应地填充TextViews和ImageView.Fragment XML和Fragment代码都可以正常工作(我可以很好地显示单个Fragment).我有一个FragmentActivity,我想在其中显示上面提到的碎片列表.这是我用来尝试填充FragmentActivity视图中的ListView的代码:

    ArrayList<Fragment> fragList = new ArrayList<Fragment>();
    Fragment fragment = Fragment.instantiate(this, TileItem.class.getName());
    Bundle bundle = new Bundle();
    bundle.putInt("key", 0);
    fragment.setArguments(bundle);
    fragList.add(fragment);

    ArrayAdapter<Fragment> adapter = new ArrayAdapter<Fragment>(this, R.layout.tile_item, fragList);
    listItems.setAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)

这是我对此的思考方式.我创建了一个Fragments的ArrayList来保存我所有实例化的视图.然后创建一个片段,创建一个包,将数据添加到包(这样的片段可以正确地封送数据到它的意见),加上捆绑的片段,然后最后片段添加到ArrayList.之后,我创建一个ArrayAdapter,添加我想要使用的元素布局,以及我制作的片段列表; 然后将ListView设置为从我的适配器读取.

任何运行此代码的人都可能会获得NPE @实例化ArrayAdapter.是什么赋予了?这甚至可能吗?在我继续绞尽脑汁之前,有人可以告诉我,如果我只是在浪费时间吗?有没有更好的办法?我一直在想用滚动型的,但这么多的ListView的功能将需要重新实现,我讨厌恨,恨重复发明轮子时,它不是必需的.

感谢所有人的阅读,特别感谢您的决定,如果您决定离开他们.我试图寻找一个既定的答案,但我似乎找到的是关于使用片段的Lis​​tView INSIDE的问题/网页; 不使用碎片作为ListView的元素

编辑:我接受了以下建议,并开始调查更多.从事情出现,我应该能够使用该膨胀片段,而不是从XML只是平了建筑的自定义接口的方式(因为缺乏一个更好的方式来描述这一过程),但我目前的实现正试图设置时抛出NPE适配器.

这是我的自定义适配器代码(为简洁起见缩短):

public class AdapterItem extends ArrayAdapter<Fragment> {

Context c;
List<Fragment> f;

public AdapterItem(Context c, List<Fragment> f) {
    super(c, R.layout.tile_item, f);
    this.c = c;
    this.f = f;
}

@Override
public View getView(int pos, View v, ViewGroup vg) {
    LayoutInflater i = (LayoutInflater) …
Run Code Online (Sandbox Code Playgroud)

android listview fragment android-arrayadapter

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

ViewHolder有什么好处?

在开发Android程序时; 并且你想要一个ArrayAdapter你可以简单地拥有一个Class(大多数时候使用ViewHolder后缀)或直接膨胀你的convertView并通过id找到你的视图.
那么使用ViewHolder有什么好处?
两个例子都在这里:

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    if (convertView == null) {
        convertView = ((Activity)getContext()).getLayoutInflater().inflate(R.layout.row_phrase, null);
    }
    ((TextView) convertView.findViewById(R.id.txtPhrase)).setText("Phrase 01");
}
Run Code Online (Sandbox Code Playgroud)

要么 :

static class ViewHolder {   
    ImageView leftIcon;   
    TextView upperLabel;  
    TextView lowerLabel;  
}
Run Code Online (Sandbox Code Playgroud)

最后在getView中:

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder = null;
    if (view == null) {
        view = LayoutInflater.from(context).inflate(R.layout.row_layout,
                    null, false);
        holder = new ViewHolder();
        holder.leftIcon = (ImageView) view.findViewById(R.id.leftIcon); …
Run Code Online (Sandbox Code Playgroud)

android listview android-arrayadapter android-viewholder

39
推荐指数
3
解决办法
4万
查看次数