sách gpt4 ai đã đi

Xem bộ phân trang trong ListView?

In lại Tác giả: Space Dog Thời gian cập nhật: 2023-10-29 15:38:23 27 4
mua khóa gpt4 Nike

Tôi đang sử dụng View Pager trong dự án ListView của mình. Tôi muốn hiển thị hình ảnh trong trình xem trang nhưng tính năng tải chậm không hoạt động với nó. Xin hãy cho tôi giải pháp. Tôi đã thử nhiều tệp tải chậm nhưng một số tệp vẫn hoạt động. Một số người giữ giao diện người dùng.

Mã tôi có hiện tại hoạt động tốt, nhưng nó không hiển thị hình ảnh ở lần đầu tiên. Tôi phải cuộn ListView xuống, sau đó cuộn lên lại thì nó mới hiển thị. Tôi không biết vấn đề là gì, vui lòng cho tôi giải pháp tôi cần phải làm gì?

Tôi đang đăng mã bộ điều hợp của mình:-

Đây là mã getview của tôi:

công khai View getView(final int position, View convertView, ViewGroup parent) {

Xem v = convertView;
nếu (v == null) {
LayoutInflater mInflater = (LayoutInflater) objProp.activity
.getApplicationContext().getSystemService(
Bối cảnh.LAYOUT_INFLATER_SERVICE);
v = mInflater.inflate(R.layout.adapter_walllayout, null);
}

// Nhận điều khiển

viewHolder cuối cùng vh = viewHolder mới();
vh.txtview_Question = (Lượt xem văn bản) v.findViewById(R.id.textView1);
vh.textview_CommentCount = (Lượt xem văn bản) v
.findViewById(R.id.textVew_WallTotalComments);
vh.textview_LikeCount = (Lượt xem văn bản) v
.findViewById(R.id.textVew_WallTotalokay);
vh.ViewPager_Images = (ViewPager) v.findViewById(R.id.pager);
vh.imageview_Profile = (ImageView) v
.findViewById(R.id.imageview_userImage);
vh.textview_PostDate = (Lượt xem văn bản) v
.findViewById(R.id.textView_PostDate);

vh.textview_UserName = (Lượt xem văn bản) v
.findViewById(R.id.textVew_WallUserName);

// Điều khiển SetDatato

// Đặt dữ liệu
vh.txtview_Câu hỏi
.setText(objProp.wallDataList.get(vị trí).wallPost_Name);
vh.txtview_Question.setTypeface(fontsFamily.getFont(
objProp.activity.getApplicationContext(), đúng));

vh.textview_Tên người dùng
.setText(objProp.wallDataList.get(vị trí).wallPost_User_Name);
vh.textview_UserName.setTypeface(fontsFamily.getFont(
objProp.activity.getApplicationContext(), đúng));


các trang Vector cuối cùng = Vector mới();

objProp.activity.runOnUiThread(mới Runnable() {

@Ghi đè
công khai void run() {

vh.ViewPager_Images.setOffscreenPageLimit(4);

đối với (int i = 0; i < objProp.wallDataList.get(vị trí).wallPost_Images_Data
.kích thước(); i++) {

int imagePosion cuối cùng = i;
LayoutInflater mInflaterImage = (LayoutInflater) objProp.activity
.getApplicationContext().getSystemService(
Bối cảnh.LAYOUT_INFLATER_SERVICE);
Xem vImage = mInflaterImage.inflate(
R.layout.wallimagepageradaper, null);

ImageView imageView = (ImageView) vImage
.findViewById(R.id.imageView1);
imageView.setTag(objProp.wallDataList.get(vị trí).wallPost_Images_Data
.get(i).qst_Wall_Image);
CheckBox chk = (CheckBox) vImage
.findViewById(R.id.checkBox1);

/*
* loadLooksImages.fetchDrawableOnThread(objProp.wallDataList
* .get(vị trí).wallPost_Images_Data
* .get(i).qst_Wall_Image, imageView);
*/



imageLoader_RelativeLayout. Hiển thị hình ảnh(
objProp.wallDataList.get(vị trí).wallPost_Images_Data
.get(i).qst_Wall_Image, imageView);
/*imageLoader_RelativeLayout. Hiển thị hình ảnh(
objProp.wallDataList.get(vị trí).wallPost_Images_Data
.get(i).qst_Wall_Image, imageView);
*/
// Nhận điều khiển

vh.percentageLayout = (RelativeLayout) vImage
.findViewById(R.id.layoutPercent);
vh.percentageLayout.setVisibility(View.GONE);
vh.percentageLayout.setId(objProp.wallDataList
.get(vị trí).wallPost_Images_Data
.get(vị trí hình ảnh).qst_Wall_ImageID);

vh.textView_Percentage = (TextView) vImage
.findViewById(R.id.textView_PercentCount);
vh.textView_percentVoteCount = (TextView) vImage
.findViewById(R.id.textView1_PercentVoteCount);

// Đặt dữ liệu
Đôi d = Double.parseDouble(objProp.wallDataList
.get(vị trí).wallPost_Images_Data.get(i).qst_Wall_Image_Percentage);
int val = d.intValue();
vh.textView_Percentage.setText(giá trị + "%");
vh.textView_Percentage.setTypeface(fontsFamily.getFont(
objProp.activity.getApplicationContext(), đúng));

vh.textView_percentVoteCount.setTypeface(fontsFamily
.getFont(objProp.activity.getApplicationContext(),
ĐÚNG VẬY));
vh.textView_percentVoteCount.setText(objProp.wallDataList
.get(vị trí).wallPost_Images_Data.get(i).qst_Wall_Image_LikeCount
+ “Phiếu bầu”);

chk.setOnCheckedChangeListener(mới OnCheckedChangeListener() {

@Ghi đè
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
Dịch vụ mới_LikeImage(objProp.activity)
.execute(objProp.wallDataList.get(vị trí).wallPost_Images_Data
.get(vị trí hình ảnh).qst_Wall_ImageID
+ "");

RelativeLayout nằm = (RelativeLayout) objProp.activity
.findViewById(objProp.wallDataList
.get(vị trí).wallPost_Images_Data
.get(vị trí hình ảnh).qst_Wall_ImageID);
lay.setVisibility(View.VISIBLE);

}
});

// //hệ thống.out.println("OKKKKKK "+i);
trang.add(vImage);

}

}
});

// system.out.println("aaa "+pages.size());
CustomPagerAdapter adap = new CustomPagerAdapter(
objProp.activity.getApplicationContext(), các trang);
vh.ViewPager_Images.setAdapter(adap);

vh.textview_CommentCount.setOnClickListener(mới OnClickListener() {

@Ghi đè
public void onClick(View v) {

Ý định intent = new Intent(objProp.activity, OkayComments.class);
ý định.addFlags(Ý định.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra("wallPostPosition", vị trí);
ý định.putExtra("Số hình ảnh", imagePsotioninPager);
objProp.activity.startActivity(ý định);

}
});

vh.textview_LikeCount.setOnClickListener(mới OnClickListener() {

@Ghi đè
public void onClick(View v) {

Ý định intent = new Intent(objProp.activity, Results.class);
ý định.addFlags(Ý định.FLAG_ACTIVITY_NEW_TASK);
ý định.putExtra("qcode",
objProp.wallDataList.get(vị trí).wallPost_ID);
objProp.activity.startActivity(ý định);
}
});

imageLoader. Hiển thị hình ảnh(
objProp.wallDataList.get(vị trí).wallPost_User_Image,
vh.imageview_Profile);

Chuỗi totComments = objProp.wallDataList.get(vị trí).wallPost_Images_Data
.get(0).qst_Wall_Image_CommentCount + "";

vh.textview_CommentCount.setText(totComments + "Bình luận");
vh.textview_CommentCount.setTypeface(fontsFamily.getFont(
objProp.activity.getApplicationContext(), đúng));

vh.textview_Số lượt thích
.setText(objProp.wallDataList.get(vị trí).wallPost_Images_Data
.get(0).qst_Wall_Image_LikeCount + "Được rồi");

vh.textview_LikeCount.setTypeface(fontsFamily.getFont(
objProp.activity.getApplicationContext(), đúng));

trả về v;

}

lớp công khai viewHolder {
Chế độ xem văn bản txtview_Question;
Chế độ xem văn bản textview_CommentCount;
Chế độ xem văn bản textview_LikeCount;
Chế độ xem văn bản textview_UserName;
Chế độ xem văn bản textview_PostDate;
XemPager XemPager_Images;
Chế độ xem hình ảnh imageview_Profile;

Chế độ xem văn bản textView_Percentage;
Chế độ xem văn bản chế độ xem văn bản_phần trăm số phiếu bầu;
RelativeLayout phần trămLayout;

// Hình ảnh trong ViewPager
ImageView imageView_PostImage;

}

1 Câu trả lời

Đầu tiên..Tôi không chắc chắn mức độ nghiêm trọng của vấn đề này vì bạn đang cố sử dụng trình phân trang View làm mục ListView. Không phải là không thể thực hiện được, nhưng có quá nhiều lớp ở đây. Hy vọng bạn sẽ đánh giá cao công sức và nỗ lực bỏ ra cho đoạn mã này và tôi hy vọng điều này sẽ giúp giải quyết vấn đề của bạn.. vì vậy hãy tận hưởng đoạn mã này nhé.. :)

1) Trong trường hợp này có 2 bộ chuyển đổi. Đầu tiên là ListView và thứ hai là ViewPager

2)Hai bộ điều hợp có chức năng và mục danh sách khác nhau.

3)Bạn đang sử dụng một bộ chuyển đổi bên trong một bộ chuyển đổi khác.

4) Sau đó, bạn sử dụng bộ điều hợp cuối cùng để mở rộng ListView và thiết lập bộ điều hợp... :D

Mã như sau:Tôi sẽ thực hiện từng bước một

Bước 1: Tạo một lớp mô hình đơn giản:

 lớp công khai ModelClass {


chuỗi riêng tư titleToDisplay;



public ModelClass(String câu hỏi) {
siêu();
this.titleToDisplay = câu hỏi;
}

công khai String getTitleToDisplay() {
trả về titleToDisplay;
}

công khai void setTitleToDisplay(Chuỗi titleToDisplay) {
tiêu đề này để hiển thị = tiêu đề để hiển thị;
}
}

Bước 2: Tạo bộ điều hợp trình phân trang View và đưa nó vào lớp dự án mô hình. Đây là Bộ điều hợp View Pager cơ bản!!

lớp công khai ViewPagerAdapter mở rộng PagerAdapter {

ArrayList mảngModelClasses = new ArrayList();

@SuppressLint("Api mới")
@Ghi đè
công khai void finishUpdate(ViewGroup container) {
// TODO Phương thức tự động tạo stub
super.finishUpdate(container);

}

công khai ViewPagerAdapter() {

siêu();

}

công khai ViewPagerAdapter(ArrayList arrayModelClasses) {

siêu();
this.arrayModelClasses = arrayModelClasses;

}

@Ghi đè
công khai int getCount() {

trả về arrayModelClasses.size();

}

@Ghi đè
public boolean isViewFromObject(Bộ sưu tập View, Đối tượng Object) {

trả về bộ sưu tập == ((Xem) đối tượng);
}

@Ghi đè
public Object instantiateItem(View bộ sưu tập, int vị trí) {

// Bố cục phồng lên
LayoutInflater bộ thổi phồng = (LayoutInflater) bộ sưu tập.getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

Xem view = inflater.inflate(R.layout.drawer_list_item, null);

Mục TextViewText = (TextView) view.findViewById(R.id.title);

thử {

itemText.setText(mảngModelClasses.get(vị trí)
.getTitleToDisplay());

} catch (Ngoại lệ e1) {
// TODO Khối catch được tạo tự động
e1. printStackTrace();
}
((ViewPager) bộ sưu tập).addView(view, 0);
quay lại xem;

}

@Ghi đè
public void destroyItem(View container, int position, Object đối tượng) {
((ViewPager) container).removeView((View) đối tượng);
}

}

Bước 3: Tạo một bộ điều hợp cho ListView

Để ý:Đây là nơi tôi sử dụng bộ điều hợp trước đó và trong bộ điều hợp này tôi sử dụng trình phân trang View làm mục danh sách.

lớp công khai ListViewPagerAdapter mở rộng ArrayAdapter {

Bộ điều hợp ViewPager mViewPagerAdapter;
riêng tư Bối cảnh bối cảnh;
ArrayList navigationItems riêng tư;
int riêng tư selectedIndex;

public ListViewPagerAdapter(Bối cảnh ngữ cảnh,
ArrayList điều hướngItems) {
siêu(bối cảnh, R.layout.view_pager_list_view, navigationItems);
this.context = ngữ cảnh;
this.navigationItems = navigationItems;
}

@Ghi đè
công khai int getCount() {

trả về navigationItems.size();
}

công khai void setSelectedIndex(int ​​​​vị trí) {
selectedIndex = vị trí;
thông báoDataSetChanged();
}

@Ghi đè
công khai ModelClass getItem(int vị trí) {

trả về navigationItems.get(vị trí);
}

@Ghi đè
công khai dài getItemId(int vị trí) {

vị trí trở về;
}

@SuppressLint("Api mới")
@Ghi đè
công khai View getView(int position, View convertView, ViewGroup parent) {

nếu (convertView == null) {

LayoutInflater inflater = (LayoutInflater) ngữ cảnh
.getSystemService(Hoạt động.LAYOUT_INFLATER_SERVICE);
convertView = Inflater.Inflate(R.layout.view_pager_list_view, null);
}

ViewPager vp = (ViewPager) convertView.findViewById(R.id.list_pager);
nếu (selectedIndex != -1 && vị trí == selectedIndex) {
vp.setBackground(getContext().getResources().getDrawable(
R.drawable.gradient_selected));
} khác {
vp.setBackground(getContext().getResources().getDrawable(
R. drawable.gradient));
}

mViewPagerAdapter = new ViewPagerAdapter(navigationItems);
vp. setAdapter(mViewPagerAdapter);

trả về convertView;
}

}

Bước 4: Tôi đặt bộ điều hợp cuối cùng ("ListViewPagerAdapter") vào ListView của tôi.

Để ý:Ở đây tôi đang sử dụng bộ chuyển đổi này trong một trong những đoạn mã của mình. Bạn có thể sử dụng nó trên lớp Hoạt động bình thường của mình và nó sẽ hoạt động tốt.

lớp công khai CampaignView mở rộng Fragment {

Danh sáchViewPagerAdapter;

công khai CampaignView() {
}

@Ghi đè
công khai Xem trênCreateView(LayoutInflater inflater, ViewGroup container,
Gói savedInstanceState) {

Xem campaignview = inflater.inflate(R.layout.campaignview, container,
SAI);

trở lại campainview;
}

@Ghi đè
public void onActivityCreated(Gói savedInstanceState) {
// TODO Phương thức tự động tạo stub
super.onActivityCreated(savedInstanceState);

Chuỗi[] s = { "a", "b", "c", "d", "b", "c", "d", "b", "c", "d", "b",
"c", "d", "b", "c", "d", "b", "c", "d" };

ArrayList aList = new ArrayList();

đối với (Chuỗi s1 : s) {

aList.add(ModelClass mới(s1));

}

ListView lv1 = (ListView) getActivity().findViewById(
R.id.campaignListView);
// lv1.setAdapter(mới ArrayAdapter(getActivity(),
// android.R.layout.simple_list_item_1,aList));
listViewPagerAdapter = new ListViewPagerAdapter(getActivity(), aList);
lv1.setAdapter(listViewPagerAdapter);

}

}

Cuối cùng, có rất ít đoạn bố cục cho đoạn mã này.

Đầu tiên: Bản thân ListView:

    
android:id="@+id/campaignListView"
android:layout_width="phù hợp với cha mẹ"
android:layout_height="wrap_content" >

thứ hai: ViagerLayoutItem (mục hàng):



android:layout_width="phù hợp với cha mẹ"
android:layout_height="phù hợp với cha mẹ"
android:orientation="dọc" >


<>
android:id="@+id/danh_sách_trang"
android:layout_width="phù hợp với cha mẹ"
android:layout_height="400dp"
android:paddingTop="10dp"/>


cuối cùng: Mục danh sách ngăn kéo mục ListView:



android:layout_width="phù hợp với cha mẹ"
android:layout_height="40dp"
android:background="#303030"
android:orientation="dọc" >


android:layout_width="phù hợp với cha mẹ"
android:layout_height="wrap_content"
android:background="#303030"
android:orientation="ngang" >


android:id="@+id/biểu tượng"
android: layout_width="25dp"
android:layout_height="wrap_content"
android:layout_marginLeft="12dp"
android:layout_marginRight="12dp"
android:contentDescription="Biểu tượng"
android:src="@drawable/ic_launcher" />


android:id="@+id/tiêu đề"
android:layout_width="phù hợp với cha mẹ"
android:layout_height="wrap_content"
android:layout_gravity="trung tâm"
android:background="@android:color/darker_gray"
android:minHeight="18dp"
android:padding="20dp"
android:paddingRight="40dp"
android:text="trang chủ"
android:textColor="#33b5e5"
android:textSize="20sp"
android:textStyle="đậm" />



Hình ảnh tác phẩm:

Hình ảnh http://imageshack.com/a/img855/109/5w7e.png Hình ảnh http://imageshack.com/a/img849/860/8j5t.png

Nếu bạn có bất kỳ thắc mắc nào về mã này, vui lòng cho tôi biết. Tôi rất vui lòng trả lời.

Hi vọng bạn thích nó và chúc bạn thực hiện thành công. Tôi đã dành vài phút cho đoạn mã này. Hy vọng thông tin này hữu ích với mọi người. Chúc may mắn.. :)

Xem bộ phân trang trong ListView? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/24107433/

27 4 0
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com