Articles of listview

ViewPager中的Recyclerviews

我试图让这个工作:我基本上想在一个ViewPager中使用两个Recyclerviews。 我遵循了这个教程: http : //android-java-development.blogspot.de/2012/05/system.html ,但它似乎不起作用。 我看起来视图寻呼机是空的,并且回收器视图没有显示出来。 这是我的布局代码: 而我的PageAdapter: public class NewsPagerAdapter extends PagerAdapter { private Context context; private Vector recyclerViewList; private String[] titles; public NewsPagerAdapter(Context context, int titlesId) { this.context = context; this.recyclerViewList = new Vector(); setTitles(titlesId); } public void add(RecyclerView recyclerView) { recyclerViewList.add(recyclerView); } public RecyclerView.Adapter getAdapterForViewAtIndex(int index) { return recyclerViewList.get(index).getAdapter(); } @Override […]

为什么ListView每隔6个项重复一次?

我有一个ListView,由具有特定布局的自定义适配器填充。 适配器映射到具有特定元素的HashMap,其中包含每个ListView元素的数据。 hashMap中的数据是正确的,但ListView重复绘制每6个相同的第6个元素,直到它到达Map的末尾? 我的显示器允许显示5个项目,如果你滚动一个litte它是6个项目。 这是适配器的代码,ListActivity的相关代码和ListView的布局文件。 请帮忙,我不知道为什么会这样。 package de.View; import java.util.ArrayList; import java.util.Map; import de.carSync.R; import de.Common.Date_Conversion; import de.Common.GUI_Output; import de.Model.DriversLog.Fahrt; import de.Model.DriversLog.Geladene_Fahrten; import android.content.Context; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView; public class Fahrten_List_Adapter extends BaseAdapter{ private static String TAG = “Fahrten_List_Adapter”; private Map fahrten_Liste; private final LayoutInflater mLayoutInflater; int […]

Fragment中的Context菜单使用来自不同Fragment的ListView:registerForContextMenu(getListView())

我试过寻找解决方案,但没有发现任何符合我情况的解决方案。 我有一个MainActivity,它扩展了FragmentActivity和多个ListFragments。 我使用PagerSlidingTabStrip库进行幻灯片和ViewPager。 片段没有XML布局,它们只是ListFragments,它返回ListView,因此不需要布局。 它是一个音板应用程序,长按一个列表项,允许用户将声音文件设置为铃声,通知或警报,或保存到SD卡。 现在,所有片段加载自己的数据就好了。 一切似乎都没问题,但是,当我在后台加载的Fragment上使用上下文菜单时,似乎是使用了在它之前加载的第一个或前一个片段中的ListView,它是在创建它时可见的。 我的意思是,说我的MainActivity开始,它加载FragmentA,并在后台FragmentB也被预加载。 在onActivityCreated方法中,对于两个Fragments,它使用registerForContextMenu(getListView())。 @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); // Data loading etc MyAdapter adapter = new MyAdapter(getActivity(), R.layout.data_row, data); setListAdapter(adapter); registerForContextMenu(getListView()); } 但似乎正在发生的事情是FragmentB调用了registerForContextMenu(getListView()),它似乎采用了当前活动的ListView,这是FragmentA的列表。 所以,假设我选择从上下文菜单中保存文件。 我长按了FragmentB的第一项,但它试图保存FragmentA的第一项。 如果我只是点击列表项,它会按照您的预期播放它自己的声音,但上下文菜单命令使用预加载时可见的片段列表。 这是onCreateContextMenu。 注意,此时它在上下文菜单标题中使用了正确的项目标题。 @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)menuInfo; menu.setHeaderTitle(data.get(info.position).getDataName()); MenuInflater […]

如何为ListView中的每一行设置不同的高度?

我在ListView中设置单行的高度时遇到问题。 我已经阅读了数百个论坛和博客文章,但似乎没有什么对我有用。 我有一个带有ArrayAdapter的ListView。 根据Order对象的属性,使用不同的布局,每行具有不同的高度。 但是,最后,所有行都具有相同的高度。 我想这是给ArrayAdapter的构造函数赋予布局的高度。 有人知道如何分别控制每行的高度吗? 谢谢你的回答,菲利普

BaseAdapter导致ListView在滚动时出现故障

我在使用一本书改编的BaseAdapter代码时出现问题。 我一直在我的应用程序中使用此代码的变体,但只是在滚动一个长列表时才实现ListView中的项目变得混乱而不是所有元素都显示出来。 描述确切的行为非常困难,但很容易看出你是否采用了50个项目的排序列表并开始上下滚动。 class ContactAdapter extends BaseAdapter { ArrayList mContacts; public ContactAdapter(ArrayList contacts) { mContacts = contacts; } @Override public int getCount() { return mContacts.size(); } @Override public Object getItem(int position) { return mContacts.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { View […]

如何从ListView适配器类完成一个活动?

我有一个ListView活动,可以从Web服务加载数据。 我在每个列表项中都有一个按钮,它通过自定义适配器类加载。 我正在处理适配器类中的按钮事件。 现在我需要的是在按钮单击事件中从适配器类完成ListView的活动。

Getview参数“convertview”在新的“position”参数上不为null

我正在使用ArrayAdapter获取我自己的对象types列表(只有一种types),并且我为用户提供了创建更多项目的选项(从而为这些项目创建更多视图)。 在某些时候,getView发送了一个带有非null“convertView”的新“位置”索引。 然后它显示最后一个位置的第一个视图。 之后,当滚动视图时,所有内容都会混淆。 我假设这意味着我以不应该的方式操纵视图,但我只是看不到。 这是一些代码: @Override public View getView(int position, View convertView, ViewGroup parent) { View v; PreviewItemHolder holder = null; // Initialize view if convertview is null if (convertView == null) { v = newView(parent, position); } // Populate from previously saved holder else { // Use previous item if not null v […]

如何删除listview搜索框中的清除按钮?

我想动态地将一个TEditButton放在ListView的 搜索 框中 ,所以我这样做了: ListView := TListView.Create(Self); ListView.Parent := Self; ListView.Name := ‘hello’; ListView.Height := 369; ListView.Width := 369; ListView.Align := TAlignLayout.Bottom; ListView.SearchVisible := True; ListView.BeginUpdate; for i := 0 to ListView.controls.Count – 1 do begin if ListView.controls[i].ClassType = TSearchBox then begin SearchBox := TSearchBox(ListView.controls[i]); end; end; OKbtn := TEditButton.Create(SearchBox); OKbtn.Parent := SearchBox; OKbtn.Text := […]

包含CheckBoxes的自定义适配器的Listview

我有一个ListView,它使用自定义适配器,如下所示: private class CBAdapter extends BaseAdapter implements OnCheckedChangeListener{ Context context; public String[] englishNames; LayoutInflater inflater; CheckBox[] checkBoxArray; LinearLayout[] viewArray; private boolean[] checked; public CBAdapter(Context con, String[] engNames){ context=con; englishNames=engNames; inflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); checked= new boolean[englishNames.length]; for(int i=0; i<checked.length; i++){ checked[i]=false; //Toast.makeText(con, checked.toString(),Toast.LENGTH_SHORT).show(); } checkBoxArray = new CheckBox[checked.length]; viewArray = new LinearLayout[checked.length]; } public int getCount() { return […]

CheckBox在自定义列表视图中滚动时取消选中

我知道这个问题已被一遍又一遍地问过,但我仍然无法find真正帮助我的建议。 每当列表向下滚动时,都会取消选中该checkbox。 是的我正在使用布尔数组来存储值,但这仍然无法解决问题。 这是我的代码。 请为此建议一个解决方案。 谢谢。 public View getView(final int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub final ViewHolder holder; final boolean[] itemChecked=new boolean[30]; LayoutInflater inflater = context.getLayoutInflater(); if(convertView==null) { convertView = inflater.inflate(R.layout.custom_list, null); holder = new ViewHolder(); holder.txtViewTitle = (TextView) convertView.findViewById(R.id.title_text); holder.txtViewDescription = (TextView) convertView.findViewById(R.id.description_text); holder.cb=(CheckBox) convertView.findViewById(R.id.cb); convertView.setTag(holder); } else […]