gpt4 book ai didi

android - 如何从 ArrayAdapter 中删除项目?

转载 作者:太空宇宙 更新时间:2023-11-03 13:42:58 25 4
gpt4 key购买 nike

在我的应用程序中,我应该使用 ListViewArrayAdapter 来显示一些列表。 (我不应该使用 RecyclerView,所以不推荐我使用它)。

我希望当计时器接收到 0 时删除此项目

public class AuctionTodayListAdapter extends BaseAdapter {

private TextView proName, progressTxt, txtPercent, txtPrice2, txtStartPrice, txtPrice, progressFinishedTxt,
text_view_169622, price, timeView, edtUserName, today_inputPriceTxt, today_basePriceTxt,
txtDate, under10_priceTxt;
private CustomBadge bidCount, offerCount;
private ProgressBar progressBar;
private ImageView GoodPic, userPic, User;
private CountdownView countdownView;

public AuctionTodayListAdapter(@NonNull Context context, @LayoutRes int resource, @NonNull List<TodayGmodel> objects) {
super(context, resource, objects);

}

@SuppressLint("SetTextI18n")
@NonNull
@Override
public View getView(final int position, @Nullable View convertView, @NonNull ViewGroup parent) {
final TodayGmodel model = (TodayGmodel) datas.get(position);

View view;
if (convertView != null)
view = convertView;
else
view = View.inflate(context, layout, null);

Constants.setFont(parent);
df = new DecimalFormat(",###.##");
Log.e("todayTimer", model.getCalculateEnd() + "");
proName = (TextView) view.findViewById(R.id.text_view_16962);
progressTxt = (TextView) view.findViewById(R.id.progressTxt);
txtPercent = (TextView) view.findViewById(R.id.txtPercent);
txtPrice2 = (TextView) view.findViewById(R.id.txtPrice2);
txtPrice = (TextView) view.findViewById(R.id.txtPrice);
text_view_169622 = (TextView) view.findViewById(R.id.text_view_169622);
txtStartPrice = (TextView) view.findViewById(R.id.txtStartPrice);

countdownView.setOnCountdownIntervalListener(1000, new CountdownView.OnCountdownIntervalListener() {
@Override
public void onInterval(CountdownView cv, long remainTime) {
if (remainTime < 10000 && remainTime > 0) {
winnerLay.setVisibility(View.GONE);
listItem_winnerLay.setVisibility(View.GONE);
listItem_todayUpper10Lay.setVisibility(View.GONE);
listItem_todayPriceLay.setVisibility(View.VISIBLE);
listItem_under10Lay.setVisibility(View.VISIBLE);
under10_priceTxt.setText(df.format(model.getPrice()) + "Dollar");

progressBar.setMax((int) timeInMillis / 1000);
isRunning = true;

countDownTimer = new CountDownTimer(timeInMillis, 100) {
@Override
public void onTick(long millisUntilFinished) {
progressTxt.setText("" + String.valueOf(Math.round(millisUntilFinished * 0.001f)));
progressBar.setProgress(Math.round(millisUntilFinished * 0.001f));
}

@Override
public void onFinish() {

}
}.start();
countDownTimer.start();
}
if (remainTime < 0) {
startTimer();

remove(position);
notifyDataSetChanged();
}
}
});

我为删除写了这段代码:

        if (remainTime < 0) {
startTimer();

remove(position);
notifyDataSetChanged();
}

但对我不起作用并且没有删除任何项目!

如何从适配器中删除项目?

最佳答案

我想你可以用这个:

if (remainTime < 0) {
startTimer();
// your list object
datas.remove(position);
notifyDataSetChanged();
}

嘿,如果不起作用,那么我已经为您创建了一个示例。如果您可以共享您的 xml 文件或正确的代码,它可以正常工作,那么我们可以轻松地帮助您,否则您可以像这样使用。

public class MainActivity extends AppCompatActivity {
EditText textView;

ArrayList<Integer> newArraylist;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
newArraylist = new ArrayList<>();
newArraylist.add(R.mipmap.ic_launcher);
newArraylist.add(R.mipmap.ic_launcher);
newArraylist.add(R.mipmap.ic_launcher);
newArraylist.add(R.mipmap.ic_launcher);
newArraylist.add(R.mipmap.ic_launcher);
newArraylist.add(R.mipmap.ic_launcher);
newArraylist.add(R.mipmap.ic_launcher);
newArraylist.add(R.mipmap.ic_launcher);

GridView simpleGrid = (GridView) findViewById(R.id.simpleGridView);
AuctionTodayListAdapter customAdapter = new AuctionTodayListAdapter(newArraylist);
simpleGrid.setAdapter(customAdapter);
}


public class AuctionTodayListAdapter extends BaseAdapter {
Context context;
private TextView proName, progressTxt, txtPercent, txtPrice2, txtStartPrice, txtPrice, progressFinishedTxt,
text_view_169622, price, timeView, edtUserName, today_inputPriceTxt, today_basePriceTxt,
txtDate, under10_priceTxt;
ArrayList<Integer> newString;

public AuctionTodayListAdapter(ArrayList<Integer> objects) {
newString = objects;
context = MainActivity.this;
}

@Override
public int getCount() {
return newString.size();
}

@Override
public Object getItem(int position) {
return null;
}

@Override
public long getItemId(int position) {
return 0;
}

@Override
public View getView(final int position, @Nullable View convertView, @NonNull ViewGroup parent) {
LayoutInflater inflter = (LayoutInflater.from(getApplicationContext()));
View view = inflter.inflate(R.layout.activity_grid, null);//set layout for displaying items
ImageView icon = (ImageView) view.findViewById(R.id.icon);
icon.setImageResource(newString.get(position));
icon.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
newString.remove(position);
notifyDataSetChanged();
}
});

return view;
}
}}

关于android - 如何从 ArrayAdapter 中删除项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47886339/

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