gpt4 book ai didi

java - 为多个按钮添加多个点击监听器

转载 作者:行者123 更新时间:2023-11-30 10:41:55 31 4
gpt4 key购买 nike

如何才能让用户拥有多个带有点击监听器的按钮。我用 2 个按钮尝试了它,但它说我已经定义了点击监听器,因此我无法再创建一个点击监听器。到目前为止我的代码是:

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.view.View;
import android.widget.LinearLayout;

public class MainActivity extends AppCompatActivity {

private View btnRender;
private LinearLayout container;
private View btnRendered;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

btnRender = (View)findViewById(R.id.btn_render);
container = (LinearLayout)findViewById(R.id.fragment_layout);
btnRendered = (View) findViewById(R.id.btn_rendered);

//set event handling for button
btnRender.setOnClickListener(onClickListener());
}

private View.OnClickListener onClickListener() {


return new View.OnClickListener() {
@Override
public void onClick(View v) {
//replace fragment when clicked
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.fragment_layout, new PDFRenderFragment());
ft.commit();

//gone button after all
btnRender.setVisibility(View.GONE);
container.setVisibility(View.VISIBLE);
}
};


}
}

btn_rendered 是我想为其设置点击监听器的另一个按钮,但软件不允许我这样做。我真的需要设置一个 switch-case 方法才能工作吗?

我刚刚尝试了这两种代码,但似乎都没有达到预期的效果。现在每当我点击其中一个按钮时,第二个 pdf 总是显示! (我使用按钮的目的)

最佳答案

你可以像下面这样处理。

btnRender.setOnClickListener(onClickListener()); 
btnRendered.setOnClickListener(onClickListener());

private View.OnClickListener onClickListener() {


return new View.OnClickListener() {
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.btn_render:
//replace fragment when clicked
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.fragment_layout, new PDFRenderFragment());
ft.commit();

//gone button after all
btnRender.setVisibility(View.GONE);
container.setVisibility(View.VISIBLE);
break;
case R.id.btn_rendered:
// your logic here

break;
}
}
};
}

关于java - 为多个按钮添加多个点击监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38327125/

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