Articles of 适配器

Android:getView()在自定义适配器中调用两次

我正在将自定义SimpleCursorAdapter设置为ListView。 出于某种原因,对于DB中的每个项目,都会调用两次FriendAdapter的getView()。 经过一些调查(我的contact_list.xml中没有wrap_content),我仍然无法弄清楚原因。 可能是什么原因? 有人可以帮忙吗? 谢谢 ContactSelection.java public class ContactSelection extends ListActivity { private WhipemDBAdapter mDbHelper; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mDbHelper = new WhipemDBAdapter(this); mDbHelper.open(); setContentView(R.layout.contact_list); Cursor c = mDbHelper.fetchAllFriends(); startManagingCursor(c); String[] from = new String[] {}; int[] to = new int[] {}; setListAdapter(new FriendAdapter(this, R.layout.contact_row, c, from, to)); getListView().setItemsCanFocus(false); getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); } […]

如何将项添加到Spinner的ArrayAdapter?

我有一个EditText,一个按钮和一个微调器。 单击该按钮时,微调器将添加一个新项目,其中包含您在EditText中输入的名称。 但问题是,我的adapter.add()方法似乎不起作用……这是我的代码: public class Spr extends Activity { Button bt1; EditText et; ArrayAdapter adapter; Spinner spinner; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); bt1 = (Button)this.findViewById(R.id.bt1); et = (EditText)this.findViewById(R.id.et); spinner = (Spinner)this.findViewById(R.id.spr); adapter = ArrayAdapter.createFromResource( this, R.array.planets_array, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(adapter); bt1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String temp = et.getText().toString(); […]

创建适配器到CustomView

我一直试图在网上查找有关如何做到这一点的任何解决方案或示例,但无法find类似我的问题的任何东西。 我有一个LinearLayout ,我想在ArrayList数据更改时添加/删除Views 。 据我所知,唯一的方法是通过扩展AdapterView和使用ArrayAdapter来创建CustomView 。 不幸的是,我不理解正确的数据流来解决这个问题。 我在CustomView中指定哪个View是容器? 我可以在实现它的时候在LinearLayout CustomView吗? 编辑:我强调 – 我不需要ListView 。 我需要它用于CustomView

android – 禁用Listview项目单击并重新启用它

所以我在适配器中有以下代码: @Override public boolean isEnabled(int position) { GeneralItem item = super.getItem(position); boolean retVal = true; if (item != null) { if (currSection != some_condition) retVal = !(item.shouldBeDisabled()); } return retVal; } public boolean areAllItemsEnabled() { return false; } 这里的问题是:如果我在初始绑定期间禁用了我的项目,现在我在屏幕上引发事件并且无论如何都需要启用它们。 在执行该操作后,我是否再次重新绑定它? 例如: onCreate{ // create and bind to adapter // this will disable items at certain […]

在PagerAdapter中实现循环滚动

我正在使用PagerAdapter进行水平滑动,以便在我的应用中显示报纸页面。 目前我想在这个应用程序中实现循环滚动。现在我所做的是whenever I am getting on last page I try to set the currentItem to first page即该function适用​​于最后一页到第一页,但问题是我怎么能从第一页到最后一页。 在这里,我粘贴了与pagerAdapter和onPageChangeListener相关的代码: – awesomeAdapter = new AwesomePagerAdapter(awesomePager); awesomePager.setAdapter(awesomeAdapter); awesomePager.setPageMargin(10); awesomePager.setOnPageChangeListener(new OnPageChangeListener() { int lastPosition; float posOffset = 0; @Override public void onPageSelected(int position) { viewerPage = position; CommonLogic.logMessage(“Viewer Page:- “+ viewerPage, TAG, Log.VERBOSE); posOffset = 0; } @Override public […]

调用ArrayAdapter中的getView()时

在android中为ListView创建自定义adapter ,我看到我必须创建一个扩展ArrayAdapter类的类并实现getView(..)方法。 所有这一切都没问题,但我想知道调用方法和执行的顺序。 即在哪个代码点调用getView() ?

android viewpager更改适配器

我正在使用ViewPager开发一个用于横向滚动表的应用程序,有时我需要更改适配器以加载一组不同的表。 我试着做以下事情: mViewPager.setAdapter(new pagerAdapterPushed(getSupportFragmentManager())); mViewPager.getAdapter().notifyDataSetChanged(); indicator.setViewPager(mViewPager); indicator.invalidate(); mViewPager.invalidate(); 但它总是重新加载以前的数据。 是否可以更改ViewPager的适配器?

什么是适配器类?

我用Google搜索并进行了调查,但我仍需要澄清一下:适配器类和控制器类是否类似? 如果没有,他们会以何种方式有所不同? 请解释一下。

是否有可能从Android中的适配器引用ListView?

是否有可能从Android中的适配器引用ListView而不将其作为构造函数的parameter passing?

Android:notifyDataSetChanged(); 不工作

我在服务器中有一个数据库,从Tablet中我从数据库中的一个表中获取一些值。 我正确地将这些信息加载到列表中,但我想知道为什么当发生更改时,即使我使用notifyDataSetChanged();也没有任何notifyDataSetChanged(); 。 我必须说,为了加载加载数据y使用AsyncTaskClass所以,我的问题是我不知道是否使用notifyDataSetChanged(); 方法正确,因为如果有更改我想刷新图像。 以下是该类代码的一部分: @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.all_candidatos); candidatosList = new ArrayList<HashMap>(); new CargarCandidatos().execute(); } // public void timer(){ // new CountDownTimer(tiempo, 100) { // // public void onTick(long millisUntilFinished) { // // } // // public void onFinish() { // // new CargarCandidatos().execute(); // // } // }.start();} […]