我希望在点击后禁用listview中针对该特定行的按钮。 现在,我可以禁用它,但在重新启动活动后,它再次变为可点击状态。下面是我的适配器的代码。请让我知道我该怎么做,谢谢!
public View getView(final int position, View view, ViewGroup viewGroup) {
Typeface face_02 = Typeface.createFromAsset(context.getAssets(), "customfont/grb.otf");
ViewHolder holder = new ViewHolder();
if (view == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(layout, null);
holder.Boothname = (TextView) view.findViewById(R.id.Boothname);
holder.buttonVote= (Button) view.findViewById(R.id.buttonvote);
view.setTag(holder);
} else {
holder = (ViewHolder) view.getTag();
}
BoothClassFunAward product = productList.get(position);
holder.Boothname.setText(product.getBoothName());
holder.Boothname.setTypeface(face_02);
holder.buttonVote.setTypeface(face_02);
final ViewHolder finalHolder = holder;
holder.buttonVote.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finalHolder.buttonVote.setText("Completed");
Intent intent2 = new Intent(context, ProgramActivity.class);
context.startActivity(intent2);
}
});
return view;
}
答案 0 :(得分:0)
首次点击按钮时需要设置布尔值。您可以基于此启用和禁用。
禁用:
holder.buttonVote.setEnabled(false);
For Enabled:
holder.buttonVote.setEnabled(true);
答案 1 :(得分:0)
有两种情况。
如果您从服务器接收数据,那么为了维持按钮的状态,您必须在服务器收到的响应中添加一个布尔标志,该按钮已被点击或未被点击。很明显,按钮对应于一个动作,因此在同一个音符上你必须在同一个动作中更新服务器关于被点击按钮的状态。
为此,您将不得不依赖本地数据库或共享首选项。 请确保做以下事情
您可以使用数据库或共享首选项来保存列表。