Articles of android adapterview

与AdapterView和addView的麻烦

我想要下面的类来显示一些textviews / buttons / spinners,还有一个包含parsing数据的ListView。 但是,列表视图/适配器/ addview正在造成一些麻烦。 下面是我得到的错误: java.lang.UnsupportedOperationException:在AdapterView中不支持addView(View,LayoutParams) 我感觉它与我的XML文件,但林不太确定。 这是我的代码: public class StatisticsScreen extends ListActivity{ private List<Message> messages; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.statisticsscreen); loadFeed(); //other textviews and listeners added } private void loadFeed() { try{ BaseFeedParser parser = new BaseFeedParser(); messages = parser.parse(); List<String> titles = new ArrayList<String>(messages.size()); for (Message msg […]

图库/ AdapterView儿童可绘制状态

我正在使用一个图库视图,其中对应于每个项目的视图是非平凡的,由文本以及多个button组成。 当我点击拖动图库视图(不在其中一个button上的某个地方)时,button的可绘制状态改变为按下,并且好像当前所有button都被按下了一样。 此外,所选状态也会发生相同的行为(例如,子视图的所有文本都会改变颜色)。 我试图阻止这种行为,并find了android:duplicateParentState xml属性以及setDuplicateParentStateEnabled属性。 这似乎应该完成我想要做的,但似乎没有效果。 有任何想法吗?

android如何在适配器内调用startActivityForResult

我有一个适配器类: public class AdapterAllAddress extends BaseExpandableListAdapter { private Context context; public AdapterAllAddress(Context context, ArrayList<AllAddressesGroup> groups) { // TODO Auto-generated constructor stub this.context = context; } } 我想调用startActivityForResult当一个button点击,我知道我可以像这样调用startActivity : context.startActivity() 但我正在寻找结果的活动,请问如何?

isItemChecked总是返回它在onItemClickListener中的内容吗?

我目前有一个ListView ,它激活ListView的OnItemLongClickListener的上下文ActionBar 。 我试图通过点击它们来select项目,但只有在上下文ActionBar启动的时候。 问题是,当我检查isItemChecked() ,以切换项目的select状态时,它总是返回与它应该的相反。 这里是我如何实现OnItemClickListener : list.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { if (mActionMode != null){ list.setItemChecked(position, !list.isItemChecked(position)); } else{ list.setItemChecked(position, false); } } }); 编辑:这是相当bizzare ..这个代码切换select状态: list.setItemChecked(position, list.isItemChecked(position)); 到底是怎么回事!? 编辑2:啊,它看起来像android是自动检查和取消选中它自己的每个项目…有什么办法来改变这种行为,并自己处理它?

在自定义AdapterView中实现onMeasure()和onLayout()的正确方法

我知道我应该在onMeasure()测量孩子,并在onLayout()布局。 问题是我应该在哪些方法中添加/回收视图,以便我们可以一起测量所有的孩子,并关注他们如何相互定位(即网格,列表或其他)? 我的第一个方法是在onLayout()添加/回收视图, onLayout()那个angular度来看,我不能测量我的孩子,因为他们没有添加到AdapterView,并且getChildCount()在onMeasure()返回0 。 我不能测量AdapterView本身,没有孩子已经被夸大,因为它真的取决于他们的相互位置,对吧? 我真的很困惑与Android的布局过程中,当儿童添加/删除dynamic。

由android.widget.RelativeLayout android不正确地调用requestLayout()

我已经实现了listview customadapter时显示列表视图显示下面交战如何reslove。 requestLayout() improperly called by android.widget.RelativeLayout{b42acc20 VE…. ……ID 0,-52-480,0 #7f0700ec app:id/ptr_id_header} during layout: running second layout pass java代码 public View getView(int position, View convertView, ViewGroup parent) { View view = convertView; if (view == null) { LayoutInflater vi = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); view = vi.inflate(R.layout.listitemrow, null); } RssItem rssItem = mRssItemList.get(position); if (rssItem != null) […]

RecyclerView – 我应该在哪里处理点击事件?

在引入RecyclerView (及其强制的ViewHolder模式)之前,我通常使用setOnItemClickListener()将任何单击事件委托给相应的Activity / Fragment 。 (因为Android开发时我主要将Activity / Fragment看作一个“控制器”对象,因此应该对视图进行任何修改。) 现在,由于RecyclerView并没有真正地以相同的方式处理它的子对象,并且setOnItemClickListener() (或类似的)方法不再被实现 – 我应该在哪里处理可能发生的点击事件呢? 我不知道,但在一个Adapter处理他们似乎尴尬的我。 我们该怎么做呢? 提前致谢!

设置android:windowBackground到@null使滚动拖动?

我使用sherlock actionbar库来支持许多设备。 我有一个viewPager有3个片段: 一个用listView ,每个item都有一个textView和一个imageView 第二个有一个gridView ,每个项目都有一个textView和一个imageView 第三个只是现在有一个textView 。 正如我在谷歌IOvideo听到的(因为林特告诉我),build议有下一个风格被用于所有的活动: <resources xmlns:android="http://schemas.android.com/apk/res/android"> <style name="AppTheme" parent="@style/Theme.Sherlock"> <item name="android:windowBackground">@null</item> </style> </resources> 这在很多设备上都适用于我。 然而,在仿真器上,使用版本2.3.3和星系连接,当我滚动( viewPager或任何adapterViews ),一切都只是涂抹,所以我得到了很多白色的像素,好像什么都没有刷新。 我甚至试图设置android:cacheColorHint="#00000000"为我所有的adapterViews,但它仍然会发生。 到底是怎么回事? 我该如何解决这个问题? 我喜欢添加上面的,因为它消除了每个应用程序出现的银河S3的丑陋梯度背景。

如何从Android中的setOnItemClickListener的ListView中获取对象?

我已经在arrayadapter中添加了arraylist,其中包含对象,每个对象包含两个元素/项目,我已经成功地为setListAdapter设置适配器,现在我想要在listview的setOnItemClickListener中获得这些项目。 这是我的代码 TweetListAdaptor adaptor = new TweetListAdaptor(this,R.layout.list_item, tweets); setListAdapter(adaptor); ListView lv = getListView(); lv.setTextFilterEnabled(true); lv.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View view,int position, long id) { //here i want to get the items } });

微调:获得状态或打开时得到通知

是否有可能知道Spinner是打开还是closures? 如果有一些onSpinner的onLpenListener会更好。 我试过使用这样的OnItemSelectedListener: spinnerType.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { executeSomething(); } @Override public void onNothingSelected(AdapterView<?> parent) { Log.d("nothing" , "selected"); } }); 我可以知道,如果select了某些东西(在executeSomething()),窗口将会closures。 但是,如果我单击对话框外部,也会收到通知,这也会closures微调框