gpt4 book ai didi

android - 滚动时消失的Android gridview

转载 作者:太空狗 更新时间:2023-10-29 14:05:31 26 4
gpt4 key购买 nike

在我上下滚动 gridview 两次之前,代码工作正常。当我开始上下滚动时,gridview 的内容开始从顶部消失,屏幕逐渐变成空白。我知道这是一个回收问题,但由于我头脑中的编程知识几乎为零,所以我无法解决这个问题。我在这里搜索答案,但我没有找到我的代码的问题。这就是为什么我决定问问自己。

我已经在下面给出了代码,我希望有人能解决我的问题。

主类

public class NEWS extends AppCompatActivity {
GridView gridView;
static final String[] MOBILE_OS = new String[] { "Mathrubhumi", "Malayala Manorama","Madhyamam","Deshabhimani", "One India","Marunadan Malayali","Janayugom",
"Janmabhumi","Kvartha","Bignews Live"};

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_news);

gridView = (GridView) findViewById(R.id.gridView);
gridView.setAdapter(new adapter_news(this, MOBILE_OS));
}

适配器类

public class adapter_news extends BaseAdapter {
private ImageView flag;
private Context context;
private final String[] countries;
public adapter_news(Context context, String[] countries) {
this.context = context;
this.countries = countries;
}
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View gridView;
if (convertView == null) {
gridView = new View(context);
gridView = inflater.inflate(R.layout.adapter_news, null);
TextView textView = (TextView) gridView.findViewById(R.id.label);
textView.setText(countries[position]);
flag = (ImageView) gridView.findViewById(R.id.flag);
String mobile = countries[position];
if (mobile.equals("Mathrubhumi")) {
flag.setImageResource(R.drawable.mathrubhumi);
flag.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent("");
v.getContext().startActivity(intent);
}
}
);
} else if (mobile.equals("Malayala Manorama")) {
flag.setImageResource(R.drawable.malayala_manorama);
flag.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent("");
v.getContext().startActivity(intent);
}
}
);
} else if (mobile.equals("Madhyamam")) {
flag.setImageResource(R.drawable.madhyamam);
flag.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent("");
v.getContext().startActivity(intent);
}
}
);
} else if (mobile.equals("Deshabhimani")){
flag.setImageResource(R.drawable.deshabhimani);
flag.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent("");
v.getContext().startActivity(intent);
}
}
);
} else if (mobile.equals("One India")){
flag.setImageResource(R.drawable.oneindia);
flag.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent("");
v.getContext().startActivity(intent);
}
}
);
} else if (mobile.equals("Marunadan Malayali")){
flag.setImageResource(R.drawable.marunadan);
flag.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent("");
v.getContext().startActivity(intent);
}
}
);
} else if (mobile.equals("Janayugom")){
flag.setImageResource(R.drawable.janayugom);
flag.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent("");
v.getContext().startActivity(intent);
}
}
);
} else if (mobile.equals("Janmabhumi")){
flag.setImageResource(R.drawable.janmabhumi);
flag.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent("");
v.getContext().startActivity(intent);
}
}
);
} else if (mobile.equals("Kvartha")){
flag.setImageResource(R.drawable.kvartha);
flag.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent("");
v.getContext().startActivity(intent);
}
}
);
} else {
flag.setImageResource(R.drawable.bignews);
flag.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent("");
v.getContext().startActivity(intent);
}
}
);
}
} else {
gridView = convertView;
}
return gridView;
}
@Override
public int getCount() {
return countries.length;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
}

主 xml

<GridView
android:id="@+id/gridView"
xmlns:android="http://schemas.android.com/apk/res/android"
android:gravity="center"
android:numColumns="auto_fit"
android:columnWidth="140dp"
android:stretchMode="columnWidth"
android:layout_height="fill_parent"
android:layout_width="fill_parent">
</GridView>

适配器 xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingRight="20dp"
android:paddingLeft="20dp"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:gravity="center">
<ImageView
android:id="@+id/flag"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp">
</ImageView>
<TextView
android:id="@+id/label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAlignment="center"
android:text="@+id/label"
android:textSize="15sp" >
</TextView>

最佳答案

这是方法的描述:

/**
* Get the row id associated with the specified position in the list.
*
* @param position The position of the item within the adapter's data set whose row id we want.
* @return The id of the item at the specified position.
*/
@Override
public long getItemId(int position) {
return position; // return 0 here means All items are the same;
}

基于此,从此处返回 0 可能会导致 listView 混淆。你可能永远不会这样做。 return 0语句由IDE生成,与方法逻辑无关。

关于android - 滚动时消失的Android gridview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32664837/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com