Articles of 适配器

在android中的片段中设置列表视图适配器

我想要一个自定义行,所以我在xml中使用List View并膨胀成片段。 我对如何为列表View设置适配器感到很困惑。 我创建了一个扩展Base Adapter的新适配器。 在getView方法中,我真的不知道在扩展row.xml布局时要传递什么上下文。 如何为列表视图设置适配器以及在哪里? public class ResultsFragment extends Fragment{ @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.results_layout, container, false); listView = (ListView)v.findViewById(R.id.results); return v; } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); loadPage(dataBean.getWhat(), dataBean.getWhere(), dataBean.getPageStart()); //resultsAdapter.setRssData(rssData); //setListAdapter(resultsAdapter); } @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); Context context […]

android listviews:页眉和页脚视图

在我的ListActivity中,我需要页眉和页脚视图(在列表的顶部和底部)分别用作列表中的上一页和下一页按钮,因为我想一次只显示20个项目。 我通过以下方式设置我的标题和英尺视图: getListView().addHeaderView(myHeaderView); getListView().addFooterView(myFooterView); setListAdapter(adapter); 这工作正常,但我需要动态删除并添加这些页眉和页脚视图,因为我的列表中的某些页面可能没有下一页按钮或上一页按钮。 问题是,在调用setListAdapter之后,我无法调用addHeaderView或addFooterView。 有没有解决的办法?

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