Java 一个按钮用于两种不同的操作
我在dialogFragment中有“发送”按钮,onClick事件在键值下将新数据推送到firebase 我希望这个按钮也像一个“更新”按钮时,用户点击特定的按钮。数据将在firebase中以与以前相同的键值进行更新 这是发送按钮onClick方法:Java 一个按钮用于两种不同的操作,java,android,Java,Android,我在dialogFragment中有“发送”按钮,onClick事件在键值下将新数据推送到firebase 我希望这个按钮也像一个“更新”按钮时,用户点击特定的按钮。数据将在firebase中以与以前相同的键值进行更新 这是发送按钮onClick方法: send_btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) {
send_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//some code .....//
DatabaseReference newPost = mDatabase.push();
str_key = newPost.getKey();
trempData = new TrempData(str_key, str_uid, str_name, str_phone, str_from, str_to, str_date, str_time, str_extra, str_timestamp);
newPost.setValue(trempData);
Toast.makeText(getActivity(), "Tremp Added", Toast.LENGTH_SHORT).show();
dismiss();
}
});
有什么建议吗?这是一个例子:
private final int BUTTON_UPDATE = 1;
private final int BUTTON_SEND = 2;
private int buttonStatus = 0;
send_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
switch(buttonStatus)
{
case BUTTON_UPDATE: { // your update code here}
case BUTTON_SEND : { // your send code here
}
按钮状态将控制按钮的操作
用户将数据发送到firebase更新布尔值为true
比实现更重要的是您认为可以实现的方式。因此,在这些情况下,基本方法是使用布尔变量 为什么??因为它可以用来指示按钮是否处于特定状态。 所以,你可以这样做
boolean b=false;
//set your button in the initial state you want(submit in your case)
//In onClick() method
if(!b){ //button in submit state
b=true;
//do submit stuff
send_btn.setText("update");
}
else{ //button in update state
b=false;
//do update stuff
send_btn.setText("submit");
}
在这种情况下,b的真值表示按钮处于“更新”状态。您可以使用视图的标记进行此操作,并根据需要更新状态
Button button = findViewById(R.id.btn);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (button.getTag().equals("send")) {
// push the value to firebase
// set the tag to update and the text
button.setTag("update");
button.setText("update");
}else if (button.getTag().equals("update")){
// update the value in firebase
}
}
});
xml
当他打开对话框时,开始的状态是什么我不确定我是否重新启动了你的问题。。开始状态是当用户单击发送btn新数据时,在按下您想要的按钮后,将其推送到Firebase升级按钮的状态我想在单击特定btn后更改状态。我将编辑问题以使其清晰。好的,我明白了,我将回答,我希望只有在单击位于listview(另一活动)中的特定按钮时,才将其更改为“更新”。但当我尝试更改标签时,应用程序会关闭答案中的此代码,如果在同一个活动中有,如果在另一个活动中,我认为您应该使用prefrence来存储值
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:tag="send"
android:text="send" />