相关疑难解决方法(0)

Android ListView:获取可见项的数据索引

ListView创建了一个Android ,SimpleAdapter其中包含的项目多于屏幕中的项目.滚动列表后,我需要获取列表中第一个可见项的数据模型中的位置.

基本上我想要一个像:listView.getChildAt(0).getPositionInDataModel().

Adapter它有一些功能getItemId(position),看起来很有用; 但是,SimpleAdapter实现只返回传入的位置,而不是像我希望的那样的行ID.

一个强力解决方案是在索引0处获取View,并将其与适配器中每个项目的视图进行比较.但是,似乎没有一种简单的方法可以从适配器获取特定位置的视图.

有人有什么想法?

android listview

34
推荐指数
1
解决办法
5万
查看次数

android ListView mListView.getChildAt(i)为null,如何解决?

我创建以下代码:

 mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View v, int position,
                long id) {

            for (int i = 0; i < mListView.getCount(); i++) {
                View callLogView = mListView.getChildAt(i);   
                mRelativeLayout = (LinearLayout)callLogView.findViewById(R.id.myShow);
                if(i == position){
                    if(mRelativeLayout.getVisibility() == View.GONE){
                        mRelativeLayout.setVisibility(View.VISIBLE);
                    }
                    else{
                        mRelativeLayout.setVisibility(View.GONE);
                    }
                }else{
                    mRelativeLayout.setVisibility(View.GONE);
                }
            }

        }
    });
Run Code Online (Sandbox Code Playgroud)

我想实现一个函数,比如当我点击一个项目时Listview,它会显示一个视图,而Listview的其他项目将被隐藏.但是mListView.getChildAt(i)超过后会有空指针mListView.getChildCount().

怎么解决这个?提前致谢!

android android-listview

5
推荐指数
2
解决办法
1万
查看次数

GridView获取项目

我试图在触摸gridview时选择项目,我无法使用onClick,因为它启动了另一个活动.我想要实现的是能够在gridview中移动项目,因为我无法找到一种方法来做到这一点我正试图让路...

所以是啊..有没有办法得到哪个项目被"触摸",我尝试使用一个矩形,它没有正常工作..

(我可以详细说明..我不能使用onItemClick这个..)

任何帮助都会很棒,谢谢!:)

java grid android

4
推荐指数
2
解决办法
7858
查看次数

ListView:如何从外部以编程方式访问Item的元素?

我有以下情况.

我有一个ListView,ListView的每个项目都包含不同的小部件(TextViews,ImageViews等...),这些小部件getView()在自定义适配器的方法中从一个布局中膨胀.

现在,我想实现以下目标:

当某个事件被触发时,我想要更改项目内的视图的背景.

请问我该怎么办?


这是项目布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/cardlayout"
android:layout_width="320dp"
android:layout_height="130dp"
android:background="@android:color/transparent"
android:orientation="vertical"
android:paddingBottom="5dp"
android:paddingRight="5dp"
android:paddingTop="5dp" >

<FrameLayout
    android:layout_width="320dp"
    android:layout_height="117dp" >

    <View
        android:id="@+id/card"
        android:layout_width="320dp"
        android:layout_height="117dp"
        android:background="@drawable/card_selector" />

</FrameLayout>  
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

我需要改变背景 card

我试过这样做:

View v=lv.getAdapter().getView(index, null, lv);
View card =(View)v.findViewById(R.id.card);
card.setBackgroundResource(R.drawable.pressed_background_card);
Run Code Online (Sandbox Code Playgroud)

但没有成功: - ((

android listview

2
推荐指数
1
解决办法
3434
查看次数

标签 统计

android ×4

listview ×2

android-listview ×1

grid ×1

java ×1