标签: android-arrayadapter

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万
查看次数

显示ListView中的文件列表

我想知道如何从ListView中的目录显示文件.这些文件可以列出:

File dir = new File(dirPath);
File[] filelist = dir.listFiles();
Run Code Online (Sandbox Code Playgroud)

并添加到ListView通道ArrayAdapter但我没有得到的使用ArrayAdapter.

directory android file android-arrayadapter android-listview

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
查看次数

扩展AbsListView示例

我想建立一个自定义列表(Pinterest网格布局),我想扩展AbsListView.周围有很好的例子吗?这似乎非常困难.

谢谢托比亚

android listview android-arrayadapter

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

ArrayAdapter - 使用多个搜索词进行过滤

我最近在这个SO问题上添加了一笔赏金,但是我意识到原始问题要求使用SimpleAdapter而不是ArrayAdapter.所以,这个问题与ArrayAdapter有关:

我希望能够使用多个搜索词在ListView中过滤ArrayAdapter.例如,如果我的列表包含以下项目:

a thing
another thing
a different thing
nothing
some thing
Run Code Online (Sandbox Code Playgroud)

如果我搜索"事物" ,则应在过滤结果中返回所有条款.这是可以使用以下代码完成的正常行为:

    private TextWatcher filterTextWatcher = new TextWatcher() {

    public void onTextChanged(CharSequence s, int start, int before, int count) {
        // TODO Auto-generated method stub

    }

    public void beforeTextChanged(CharSequence s, int start, int count,
            int after) {
        // TODO Auto-generated method stub

    }

    public void afterTextChanged(Editable s) {
        // TODO Auto-generated method stub
        myAdapter.getFilter().filter(s.toString());
    }
};
Run Code Online (Sandbox Code Playgroud)

然而; 如果我输入搜索短语' a thing',我希望显示以下结果:

a thing
another …
Run Code Online (Sandbox Code Playgroud)

android listview filtering android-arrayadapter

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

从ArrayAdapter中启动FragmentTransaction

我有ListView几行.每行都有一个button.

我想按钮启动FragmentTransaction来替换ListView所在的Fragment.

但是,在该getView()方法中Adapter,此行不起作用:

FragmentTransaction t = getContext().getSupportFragmentManager().beginTransaction();

它不喜欢上下文.

这可以通过这种方式完成,还是交易必须在其他地方进行?

android android-arrayadapter android-fragments

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

通过滑动为GridView设置动画项

我需要通过滑动从gridView获取tile并将其设置为动画以显示它下方的按钮.如何让视图用它进行一些UI操作?这是我的活动和适配器代码的片段:

public class HomeActivity extends FragmentActivity {
 ......
class MyGestureDetector extends SimpleOnGestureListener 
    @Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
    try {
        int position = mGridView.pointToPosition((int) e1.getX(), (int) e1.getY());
        if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
            View v = mMyAdapter.getView(position, null, mGridView);
            v.setVisibility(View.GONE);
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

}

MyAdapter class:
public class StatusTileAdapter extends ArrayAdapter<MyObject> {
......
    @Override
public View getView(int position, View convertView, ViewGroup parent) {
    if (convertView == null) {
        convertView …
Run Code Online (Sandbox Code Playgroud)

android android-arrayadapter

6
推荐指数
0
解决办法
624
查看次数

如何为Arrayadapter添加自定义布局?

我正在尝试ListView使用自定义布局创建.listView应该看起来像item.xml下面发布的每个项目.

在代码中,我用过

adapter = new ArrayAdapter<T>(getApplicationContext(), R.layout.listi_tems_layout, topicsList);
Run Code Online (Sandbox Code Playgroud)

但它不起作用,因为ArrayAdapter<T>接受第二个参数的构造函数int就像

android.R.layout.simple_list_item_1

,在我的情况下,它是自定义布局

R.layout.listi_tems_layout
Run Code Online (Sandbox Code Playgroud)

我应该使用哪个适配器或如何解决这个问题.谢谢

项目:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="3">

<TextView 
    android:id="@+id/tvlist_topic"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"/>
<ImageView 
    android:id="@+id/ivList_delete"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:clickable="true"
    android:src="@drawable/delete_icon"
    android:contentDescription="icon to delete item from the Listview"
    android:layout_weight="1"/>
<CheckBox 
    android:id="@+id/cbList_hook"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:checked="false"
    android:layout_weight="1"/>
Run Code Online (Sandbox Code Playgroud)

主要布局:

<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="${relativePackage}.${activityClass}" >
....
....
....

<ListView 
    android:id="@+id/lvEco_topics"
    android:layout_width="match_parent"
    android:layout_height="470dp"
    android:layout_below="@id/tvEco_topic"
    android:layout_marginTop="30dp"
    android:scrollbars="vertical"
    android:divider="@android:drawable/alert_light_frame"></ListView>
<Button …
Run Code Online (Sandbox Code Playgroud)

android listview android-arrayadapter android-layout

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

为Custom ListView的每个项添加一个下拉菜单

我有一个完美的自定义列表视图.现在,我希望列表中的每个项目都有一个下拉菜单,这样当用户点击列表中的任何项目时,下拉菜单会显示两个选项 - 编辑和删除.根据用户的选择,列表视图项被处理.

我想知道将下拉菜单添加到每个listview项的方法.

列表项的xml文件 -

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="120dp"
android:background="#FFFFFF">
<CheckBox
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:id="@+id/chkitem"
    android:layout_alignParentLeft="true"
   />
<TextView android:id="@+id/textTitle"
    android:layout_width="200dp"
    android:layout_height="60dp"
    android:textSize="15dp"
    android:textColor="#000000"
    android:textStyle="bold"
    android:gravity="fill"
    android:layout_toRightOf="@+id/chkitem"
    />
<TextView
    android:layout_width="200dp"
    android:layout_height="60dp"
    android:id="@+id/detail"
    android:textSize="15dp"
    android:textStyle="italic"
    android:gravity="fill"
    android:layout_toRightOf="@+id/chkitem"
    android:layout_below="@+id/textTitle"/>
    </RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

适配器类

 public class list_addr_adapter extends ArrayAdapter<list_addr> {

Context context;
int layoutResourceId;



public list_addr_adapter(Context context, int layoutResourceId,          List<list_addr> items) {
    super(context, layoutResourceId, items);
    this.layoutResourceId = layoutResourceId;
    this.context = context;
    //  this.listener=callback;
}

/*private view holder class*/
private class ViewHolder { …
Run Code Online (Sandbox Code Playgroud)

android listview android-custom-view android-arrayadapter drop-down-menu

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