簡體   English   中英

更新Android列表視圖中的水平滾動視圖

[英]update horizontal scroll-view inside Android listview

我正在從SQlite的ListView中開發一個horizo​​ntalListView的應用程序。當我向下滾動ListView時,我的horizo​​ntallistview將通過兩次輸入來增加。我已經嘗試使用adapter.notifyDataSetChanged();。 ,但是對horizo​​ntalListView無效。關於我應該怎么做的任何想法。

List<All_Post> allDesc = dbhelper.getAllDescriptions();
            for (All_Post all_Post : allDesc)
            {
                descArray.add(all_Post);
            }

            final MyListAdapter adapter = new MyListAdapter(this, R.layout.all_post_row, descArray);
            listView.setAdapter(adapter);
            adapter.notifyDataSetChanged();

 listView.setOnDetectScrollListener(new OnDetectScrollListener() {
            @Override
            public void onUpScrolling() {
        /* do something */

                adapter.notifyDataSetChanged();
                Log.e("onUpScrolling ", "!!!!!!");
            }

            @Override
            public void onDownScrolling() {
        /* do something */
                adapter.notifyDataSetChanged();
                Log.e("onDownScrolling ", "!!!!!!");
            }
        });

這是帶有Horizo​​ntalListView的Adapter getView()方法

@Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View row = convertView;
        Holder holder = null;
        if (row == null) 
        {
            LayoutInflater vi;
            vi = LayoutInflater.from(getContext());
            row = vi.inflate(R.layout.all_post_row, null);
            holder = new Holder();
            holder.horizontalScrollView = (HorizontalScrollView)row.findViewById(R.id.hlist);
            row.setTag(holder);
        }
        else
        {
            holder = (Holder) row.getTag();
        }

        dbhelper = new MyDbHelper(AllPosts_Page.this);
        SQLiteDatabase db = dbhelper.getReadableDatabase();
        Cursor cursor = db.rawQuery("select * from ActivityObjectList where activityId " + "= ? ", new String[]{strDescription});
        ArrayList<String> imageArray = new ArrayList<String>();
        if (cursor.moveToFirst())
        {
            do
            {
                String imagePath = cursor.getString(cursor.getColumnIndex("imageaudioPath"));
                Log.e("imagePath "," = " + imagePath);
                String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath();
                String path = baseDir + "/SDImages/" + imagePath;

                imageArray.add(path);
            }
            while (cursor.moveToNext());
        }
        cursor.close();
        db.close();
        int totalImagesPerActivityId = imageArray.size();
        Log.e("total", "ImagesPerActivityId is  = " + totalImagesPerActivityId);

        holder.linearLayout=(LinearLayout)row.findViewById(R.id.innerlay);
        for (int i = 0; i <= totalImagesPerActivityId ; i++)
        {
            final ImageView imageView = new ImageView (getContext());
            imageView.setTag(i);
            imageView.setImageResource(R.drawable.img_placeholder);
            holder.linearLayout.addView(imageView);
            imageView.setOnClickListener(new View.OnClickListener()
            {
                @Override
                public void onClick(View v)
                {
                    // TODO Auto-generated method stub
                    Log.e("Tag",""+imageView.getTag());
                }
            });
        }

        return row;
    }

    class Holder {

        HorizontalScrollView horizontalScrollView;

    }
}

我將如何實現提到的Horizo​​ntalListView? 感謝感謝。

在填充新的子視圖之前,應從Linearlayout中刪除所有子視圖:

holder.linearLayout=(LinearLayout)row.findViewById(R.id.innerlay);
holder.linearLayout.removeAllViews();
for (int i = 0; i <= totalImagesPerActivityId ; i++)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM