【发布时间】:2020-08-31 08:44:07
【问题描述】:
问题: 我在 Mainactivity 中有一个 Listview。 listview 的每一行都有两个按钮,分别是 SET 和 RUN。 按 SET 将带您进入 SET 活动,如果用户单击 SET Activity 中的保存按钮,我需要禁用 mainactivity 中列表视图相应行位置的 SET 按钮。
到目前为止完成: 为此,我在 onclicklistener 上有一个刷新功能,可以用更新的值重新查询列表。在 Mainactivity 中如何在没有按键的情况下调用该刷新功能,还是有其他方法?
活动主要:
viewHolder.ButtonSET.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String title = v.getTag().toString();
if (title.equals("SET")) {
if (Integer.parseInt((String) viewHolder.TDNQTY.getText()) > 0) {
if(scanoverornot(pos)<=0) {
Intent s = new Intent(DN.this, SETActivity.class);
s.putExtra("position", pos);
s.putExtra("mode", "SET");
try{
startActivityForResult(s, saverequestcode);
// getContext().startActivity(s);
}
catch(Exception e){
Toast.makeText(getContext(),""+e,Toast.LENGTH_LONG).show();
}
}
}
}
}
});
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (data == null)
return;
switch (requestCode) {
case saverequestcode:
if (resultCode == RESULT_OK) {
String SItem= data.getStringExtra("SItem");
int SPos= data.getIntExtra("SPos", 0);
saved = 700;
Toast.makeText(getApplicationContext(), ""+ SItem+ SPos, Toast.LENGTH_LONG).show();
//btnvalidate.performClick();
}
}
}
活动集:
Intent sav = new Intent();
sav.putExtra("SItem", String.valueOf(itemno));
sav.putExtra("SPos", String.valueOf(pos));
setResult(RESULT_OK, sav);
finish();
【问题讨论】:
-
使用 startActivityFor 结果开始您的 SET 活动。 PutExtra 项目位置。当 SET 活动完成时,意图中的位置。在 onActivityResult 中,您从数据意图获取位置参数并在适配器中调整参数。然后调用 notifyDataSetChanged。
-
你能用代码解释一下吗?然后调用 notifyDataSetChanged.] ?
-
你能用上面编辑的代码指导我吗?
-
是的。
s.putExtra("position", pos);你在哪里确定pos?您应该在 onClick() 中执行此操作。通常人们会使用标签作为位置,但您将按钮的文本放入其中。将位置放入其中,您不必检查它是否是 SET 按钮,因为它只能是那个按钮。请调整您的代码。 -
如果您需要知道按钮的文本,请使用
(Button) v). getText();
标签: android sqlite button notifydatasetchanged