Articles of android arrayadapter

为什么食谱宣传覆盖getItemViewType和getViewTypeCount,当它似乎没有必要?

我一直在通过Commonsware的Android编程教程和教程5中的额外功劳2,面临的挑战是使用多个布局来显示ListView中的行,这取决于对象的“types名称”(餐厅的“types”属性,这是一个string)。 因此,它build议在自定义ArrayAdapter中重写getItemViewType和getViewTypeCount 。 此外, Android文档和其他在线食谱或博客文章也提示相同。 在这种情况下,遵循这个配方,并重写这两个方法工作正常,但基于检查该餐厅“types”属性的值导致冗余逻辑。 例如(注意,这个适配器是一个内部类, restaurants是一个声明为外部Activity成员的Restaurant对象的ArrayList): class RestaurantsAdapter extends ArrayAdapter<Restaurant> { private static final int ROW_TYPE_DELIVERY = 0; private static final int ROW_TYPE_TAKE_OUT = 1; private static final int ROW_TYPE_SIT_DOWN = 2; RestaurantsAdapter() { super(LunchListActivity.this, android.R.layout.simple_list_item_1, restaurants); } public int getViewTypeCount() { return 3; } public int getItemViewType(int position) { String type = […]

ArrayAdapter的默认布局

我目前正在使用一个arrays适配器。 我在网上遇到的所有示例都使用arrays适配器的单独布局。 我想知道它是否有一个默认的布局。 我的代码是这样的 ArrayAdapter<String> adapt = new ArrayAdapter<String>(this,,item); 第二个参数是什么,以便我不指定资源布局,并使用其默认值?

在ListView中禁用项目焦点

我怎样才能禁用ListView一个项目的焦点,当我点击它,所以没有重点点击?

构造函数ArrayAdapter <string>是未定义的

我有一个方法initializeViews ,它遇到一个ArrayAdapter constructor undefined错误在其最后一行。 该方法位于扩展MainFragment 。 然后MainFragment被附加到一个Activity 。 我们不能在ArrayAdapter<string>构造函数中给出Fragment的上下文吗? 我是Android新手。 请纠正我 提前致谢。 private void initializeViews(RelativeLayout contentLayout) { leaguesListView = ( ListView ) contentLayout.findViewById ( R.id.leaguesListView ); progressLinear = (LinearLayout) contentLayout.findViewById ( R.id.progressLeagues ); values= new String[] { "RedBullRacing", "McLaren", "Lotus", "ForceIndia", "HRT", "Ferrari" }; adapter= new ArrayAdapter<String>(F1Fragment.this, android.R.layout.simple_list_item_1, android.R.id.text1, values); }

如何为AutoCompleteTextView创build自定义BaseAdapter

我一直在为AutoCompleteTextView创build一个自定义的ArrayAdapter时遇到困难,即使在Internet上find下面的代码,也会出现这样的错误: 下拉不会出现。 自定义对象及其细节不会出现。 所以对于那些和我有同样问题的人,我推荐使用BaseAdapter来代替AutoCompleteTextView。

为什么做listview.setAdapter(_adapter)两次崩溃的应用程序?

我有的关键问题是做lv_apps.setAdapter(_adapter) TWICE是什么崩溃我的应用程序。 (基本上,当我第二次调用populateListView_trial()时,应用程序崩溃 – 并且有问题的行是lv_apps.setAdapter(_adapter) Stacktrace在函数下面 private void populateListView_trial() { blockedApps = loadArrayBlockedApps(); if(isTimerRunning()) { blockedApps = loadArrayBlockedApps(); temp_blockedList = new ArrayAdapter<String>( MainActivityCircularSeekbar.this, android.R.layout.simple_list_item_1, blockedApps); } else { holder = new ArrayList<Datamodel>(); for(Map.Entry<String, String> entry : list_installedApps.entrySet()) { Datamodel _appdata = new Datamodel(); _appdata.setAppname(entry.getKey()); _appdata.setSelected(true); try { _appdata.setAppIcon(getIconFromPackageName(entry.getValue(), this)); } catch (Exception e) { e.printStackTrace(); […]

在牛轧糖上的黑色背景上的黑色文字(android.R.layout.simple_spinner_item)

我在欢迎活动上有一些基本的代码,像往常一样简单地绑定列表适配器: final ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, android.R.id.text1); spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 这用于工作,直到我更新到API级别25 。 在那个时候,没有任何其他的变化,这个微调下拉的文字变得不可读: 我的主题的父母是“Theme.AppCompat.Light.NoActionBar”,但同样, 我没有玩颜色 ,没有改变,因为当它显示正确(API <25)。 任何想法? 我知道我可以用setTextColor()内的一些setTextColor()来修复它,但是要点是理解它为什么起作用,现在它不起作用,因为这可能是我的一个概念错误的标志,或者甚至一些Android的错误。 事实上,我注意到相同的问题(黑色背景上的黑色文字)在相当标准的部件/应用程序,如Cyanogen / LineageOS默认的天气之一:

带有filter的ArrayAdapter的ArrayIndexOutOfBoundsException

我得到了ArrayIndexOutOfBoundsException的给定下面的自定义实现的ArrayAdapter启用过滤的ArrayIndexOutOfBoundsException 。 我看到过滤代码返回正确的结果集,但是当过滤后呈现视图时,我得到一个exception。 我在这里做错了什么。 任何帮助appreaciated。 import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.Filter; import android.widget.ImageView; import android.widget.TextView; import com.syntrio.iwm.act.R; public class IWMArrayAdapter<T> extends ArrayAdapter<T>{ Activity activity; List<T> mItems; String[] icons; boolean isArrowNeeded=false; boolean isIconNeeded=false; private ItemsFilter mFilter; public IWMArrayAdapter(Activity context,List<T> items) { super(context, R.layout.item_row,items); activity=context; mItems=items; } […]

ArrayAdapter:你必须提供一个textview的资源ID

我有一个应用程序,我想要从SQLite数据库填充ListView的数据…在这部分我有一个问题,与arrayAdapter … 这里是我填写listView的方法的代码: @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_list); PetListView = (ListView)findViewById(R.id.list); MyDatabaseHelper db = new MyDatabaseHelper(this); String [] items = new String[100]; List<Pet> pets = db.getAllPets(); for (int i = 0; i < 10; i++) { items[i] = pets.get(i).getName(); } ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.activity_list_item, R.id.textView1list, items); PetListView.setAdapter(adapter); } 这是我的数据库帮手中实现的方法: public […]

有没有办法使用ArrayAdapter更新多个TextView?

我有一个列表视图有多个textview是这样的: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:id="@+id/name" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textSize="16dip" android:textColor="#000000" android:paddingLeft="10dip" android:textStyle="bold"/> <TextView android:id="@+id/address" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textSize="16dip" android:textColor="#000000" android:paddingTop="15dip" android:paddingBottom="15dip" android:paddingLeft="10dip" android:textStyle="bold"/> </RelativeLayout> 我有一个name和address的POJO的列表,我希望列表视图中的每个项目都填充这些值。 我的POJO是这样的: public class Person { private String name; private String address; //getter setter public String toString() {return name;} } 题 当我设置列表适配器与我的列表如何设置名称和地址? 目前我正在做这只是设置名称: setListAdapter(new ArrayAdapter<Person>(MyActivity.this, R.layout.list_text, R.id.name, personList));