相关疑难解决方法(0)

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

带有自定义适配器和过滤器的Autocompletetextview

我想设置自定义ArrayAdapter为我AutoCompleteTextView这样的

public class AutoCompleteContactArrayAdapter extends
    ArrayAdapter<Map<String, String>> implements Filterable {
private Context mContext;
private List<Map<String, String>> mContactList;

public AutoCompleteContactArrayAdapter(Context context,
        List<Map<String, String>> objects) {
    super(context, R.layout.auto_contact_list, objects);
    mContext = context;
    mContactList = objects;
    // TODO Auto-generated constructor stub
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    LayoutInflater inflater = (LayoutInflater) mContext
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View rowView = inflater.inflate(R.layout.auto_contact_list, parent,
            false);
    TextView nameView = (TextView) rowView.findViewById(R.id.ccontName);
    TextView phoneView = (TextView) rowView.findViewById(R.id.ccontNo);
    TextView typeView = (TextView) rowView.findViewById(R.id.ccontType); …
Run Code Online (Sandbox Code Playgroud)

android

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

在GridView Android上搜索功能

我希望有一个人可以帮助我.我一直在关注本教程Android搜索过滤器ListView图像和文本教程, 并取得了成功.我正在尝试在我自己的活动中实现它并从服务器获取数据.

当我在搜索字段内输入时,网格视图变为空.它与定制适配器上的List一样变为null.

我的活动课

package com.danz.tensai.catalog;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;

import android.support.v4.widget.SwipeRefreshLayout;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.GridView;
import android.widget.ProgressBar;
import android.widget.Toast;

import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonArrayRequest;
import com.danz.tensai.catalog.app.MyApplication;
import com.danz.tensai.catalog.helper.Product;
import com.danz.tensai.catalog.helper.SwipeListAdapter;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

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

public class MainActivity extends ActionBarActivity {

    private String TAG = MainActivity.class.getSimpleName();

    private String URL_TOP_250 = "http://danztensai.hostoi.com/imdb_top_250.php?offset=";

    private SwipeRefreshLayout swipeRefreshLayout;
    //private ListView listView;
    private …
Run Code Online (Sandbox Code Playgroud)

java android gridview

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

在android中将代码添加到adapter的filter类时出现String类型错误,get(String)方法未定义

为了从他的列表视图中查找关键项目,我没有在适配器中使用过滤器,但是现在按照此链接添加了过滤器,但在这一行中String playerName=songsList.get(i).get("title").toString();我收到了错误

 The method get(String) is undefined for the type String
Run Code Online (Sandbox Code Playgroud)

并且在searchResults.add(songsList.get(i));作为

The method add(HashMap<String,String>) in the type ArrayList<HashMap<String,String>> is not applicable for the arguments (String)
Run Code Online (Sandbox Code Playgroud)

这是我的全部代码

 public class Home extends ListActivity {

//how many to load on reaching the bottom
    int itemsPerPage = 15;
    boolean loadingMore = false;                        

    //For test data :-)
    Calendar d = Calendar.getInstance();

ArrayList<String> songsList;
ListView list;
    LazyAdapter adapter;
JSONArray posts;



 //ArrayList thats going to hold the search results
  ArrayList<HashMap<String, …
Run Code Online (Sandbox Code Playgroud)

search android listview widget

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

如何使用BaseAdapter中的getFilter()过滤ListView

在我的应用程序中,我创建了一个自定义列表视图,我想实现一个过滤器,以便可以根据EditText中输入的文本过滤列表.我使用BaseAdapter作为一个单独的类,我在我的主要活动中调用该类.我还在我的main活动中实现了addTextChangedListener(),我还在BaseAdapter类中实现了getFilter().但我不知道如何使用getFilter()并可以相应地过滤我的列表.在列表中,我将添加JSON URL中的值.请帮助我告诉我如何使用getFilter()来过滤我的列表.

Activity类的代码:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    lv = (ListView)findViewById(R.id.listView1);
    et1 = (EditText)findViewById(R.id.editText1);
    inflator = getLayoutInflater();
    et1.addTextChangedListener(this);
    JsonParser jParser = new JsonParser();
    JSONObject json = jParser.getJSONfromUrl(url);
    try
    {
        JSONArray explore = json.getJSONArray("explore");
        for(int i=0; i<explore.length(); i++)
        {
            JSONObject exp = explore.getJSONObject(i);
            list.add(exp.getString("username"));
        }
    }
    catch(JSONException e)
    {
        e.printStackTrace();
    }

    srchadptr = new SearchAdapter(this, inflator, list);
    lv.setAdapter(srchadptr);
}

public void afterTextChanged(Editable s) {
    // TODO Auto-generated method stub
    srchadptr.getFilter().filter(s);
}

public void beforeTextChanged(CharSequence s, int start, int …
Run Code Online (Sandbox Code Playgroud)

android filter android-listview baseadapter

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

如何在BaseAdapter上实现getFilter?

我试图在基础适配器上实现一个getFilter()来过滤掉List上的搜索结果.有没有关于如何实现getFilter()的示例?

MainActivity.java

   final AppInfoAdapter adapter = new AppInfoAdapter(this, Utilities.getSystemFilteredApplication(this), getPackageManager());


        public void onTextChanged(CharSequence s, int start, int before,
                int count) {
           adapter.getFilter().filter(s); //Filter from my adapter
           adapter.notifyDataSetChanged(); //Update my view
        }
Run Code Online (Sandbox Code Playgroud)

AppInfoAdapter.java

package com.example.permission;

import java.util.List;

import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.Filter;
import android.widget.Filterable;
import android.widget.ImageView;
import android.widget.TextView;

public class AppInfoAdapter extends BaseAdapter implements Filterable{
    private Context mContext;
    private List mListAppInfo;
    PackageManager mPackManager;

    public AppInfoAdapter(Context c, List list, …
Run Code Online (Sandbox Code Playgroud)

android listview filter baseadapter

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

在Android ListView上使用过滤时出错?

我正在尝试向Android应用程序中的列表视图添加过滤。它无法正常工作,因为在搜索框中写入3-4个字母后出现以下异常。

07-02 12:14:48.348: E/AndroidRuntime(22028): FATAL EXCEPTION: main
07-02 12:14:48.348: E/AndroidRuntime(22028): java.lang.IndexOutOfBoundsException: Invalid index 1, size is 1
07-02 12:14:48.348: E/AndroidRuntime(22028):    at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251)
07-02 12:14:48.348: E/AndroidRuntime(22028):    at java.util.ArrayList.get(ArrayList.java:304)
07-02 12:14:48.348: E/AndroidRuntime(22028):    at android.widget.ArrayAdapter.getItem(ArrayAdapter.java:337)
07-02 12:14:48.348: E/AndroidRuntime(22028):    at com.sphinx.indianrailways.adapters.CityAdapter.getView(CityAdapter.java:57)
07-02 12:14:48.348: E/AndroidRuntime(22028):    at android.widget.AbsListView.obtainView(AbsListView.java:2143)
07-02 12:14:48.348: E/AndroidRuntime(22028):    at android.widget.ListView.makeAndAddView(ListView.java:1831)
07-02 12:14:48.348: E/AndroidRuntime(22028):    at android.widget.ListView.fillDown(ListView.java:674)
07-02 12:14:48.348: E/AndroidRuntime(22028):    at android.widget.ListView.fillSpecific(ListView.java:1332)
07-02 12:14:48.348: E/AndroidRuntime(22028):    at android.widget.ListView.layoutChildren(ListView.java:1630)
07-02 12:14:48.348: E/AndroidRuntime(22028):    at android.widget.AbsListView.onLayout(AbsListView.java:1994)
07-02 12:14:48.348: E/AndroidRuntime(22028):    at android.view.View.layout(View.java:14008)
07-02 12:14:48.348: E/AndroidRuntime(22028):    at android.view.ViewGroup.layout(ViewGroup.java:4373)
07-02 12:14:48.348: E/AndroidRuntime(22028): …
Run Code Online (Sandbox Code Playgroud)

android filtering android-listview

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