gpt4 book ai didi

java - 抽象类问题

转载 作者:行者123 更新时间:2023-12-02 08:08:50 28 4
gpt4 key购买 nike

我正在创建一个父 Activity (类),然后想要将该类扩展到另一个 Activity (类)。我在所有 Activity (类)中都有一些控件,所以我决定使用抽象类,这样我就不需要在所有类中编写一些通用代码。我创建了下面的类,其中一个是抽象类。当我调用我的欢迎页面时Activity 这将向我显示一个包含所有常用控件的屏幕(在我的例子中是单选按钮)。在抽象类中,我设置了 checkedChangedListener 监听器,并在我正在创建的 onCheckedChanged() 方法中一个 toast ,但它没有显示。在这种情况下我很困惑。不显示 toast 的原因是什么?

我的 Activity(Class) Welcomepage_pillReminder 扩展了 CustomTabsActivity

public class Welcomepage_pillReminder extends CustomTabsActivity

@Override
public void mappingWidgets() {
super.mappingWidgets();

}

@Override
public void addCheckChangedListner() {
super.addCheckChangedListner();
}

自定义 Activity

public abstract class CustomTabsActivity extends Activity {
protected RadioButton radHome;

public void mappingWidgets(){
radHome = (RadioButton)findViewById(R.id.radHome);
}
public void addCheckChangedListner() {
radHome.setOnCheckedChangeListener(onCheckedChangeListener);
}


OnCheckedChangeListener onCheckedChangeListener = new OnCheckedChangeListener() {

@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked) {
if(buttonView.getText().equals("Home")) {
Toast.makeText(getApplicationContext(), "Home", 2000).show();
}
}
}
};
}

最佳答案

你可以这样做,

您的 CustomActivity.java

public class CustomActivity extends Activity implements OnClickListener{

public void initLayout(Button button){
button.setOnClickListener(this);
}
public void simple_method(){
System.out.println("test in CustomActivity");
}

@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "Button Clicked in Custom Activity", Toast.LENGTH_LONG).show();
}
}

扩展 CustomActivity 的 ActivityCustomClassDemoActivity.java

  public class CustomClassDemoActivity extends CustomActivity{
Button button;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button = (Button) findViewById(R.id.myTextView);
button.setText("This is a Custom Activity Example");
super.initLayout(button);
simple_method();
}

public void simple_method(){
super.simple_method();
System.out.println("test in mainClass");
}
@Override
public void onClick(View v) {
super.onClick(v);
Toast.makeText(getApplicationContext(), "Button Clicked in Main Activity", Toast.LENGTH_LONG).show();
}
}

关于java - 抽象类问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7764130/

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