"按钮条件"操作



我做了一个小应用程序,其中包含以下活动:

配置文件活动

查找活动

搜索活动

结果活动

配置文件和查找活动都有一个按钮,一旦我单击它,它就会打开搜索活动。

搜索活动提供了一些选项,当我单击 所需的选项将打开结果活动。

我的目标如下:

如果我通过配置文件活动到达结果活动,我想有一个按钮,该按钮具有一些onClick侦听器,其文本为"添加">

如果我通过查找活动到达结果活动,我希望有一个具有不同onClick侦听器的按钮,其文本是"我想要它">

到目前为止,我所做的基本上是创建了具有不同名称的完全相同的类和活动,唯一的区别是按钮,但我确定有更好的方法。

我想也许有一个选项可以更改按钮 id,每个 id 都会执行不同的操作

任何建议都将得到认可。

使用来自个人资料或搜索活动的 Intent Extras 发送标签。在"结果活动"中,根据收到的标记创建if()switch()条件。根据标记和按钮setTag(String)分配名称。在您的活动中实现 OnClickListener。 @Override public void onClick(View v) {...} 不是基于v.getId()创建条件,而是基于v.getTag()创建条件。

您可以从配置文件>搜索>结果活动或同一键上的查找>搜索>结果活动传递一些意图数据(如布尔值或活动类名称(,并将该数据从第一个活动传递到最后一个活动。

这将帮助您了解您是来自个人资料活动还是查找活动,并且根据该意图数据,您可以在单击btn时轻松进行检查。

您还可以在进入结果活动后立即根据它更改 btn 的文本。

Button btn = findViewById(R.id.btn);
String comingFrom = getIntent().getStringExtra("COMING_FROM");
if(comingFrom.equalsIgnoreCase("ProfileActivity")) {
btn.setText("Add");
} else {
btn.setText("I want it");
}
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(comingFrom.equalsIgnoreCase("ProfileActivity")) {
// your code
} else {
// your code
}
}
});

最新更新