java - 如何定义另一个类在 MainActivity 中调用的方法?
问题描述
我想在我创建的另一个类中定义我在 MainActivity 中拥有的方法。我在解决这个问题时遇到了问题。这甚至可能吗?我在网上找不到任何关于在另一个类中定义方法的信息。
我已经包含了我的代码和我想要如何做的例子。
我的 MainActivity 代码
package com.example.flashcards;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
DatabseHelper DB = new DatabseHelper(this);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
changeText();
changeText2();
}
private void changeText() {
final String[] revertText = {"H2O", "What elements does water consist of?"};
final TextView textChange = (TextView) findViewById(R.id.flashcard1);
Button change = (Button) findViewById(R.id.answer1);
change.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int random = (int) (Math.random() * revertText.length);
textChange.setText(revertText[random]);
}
});
}
我的 TextC 代码(其他类)
package com.example.flashcards;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class TextC extends MainActivity {
private void changeText2() {
final String[] revertText = {"2,200° F", "How hot does lava get?"};
final TextView textChange = (TextView) findViewById(R.id.flashcard2);
Button change = (Button) findViewById(R.id.answer2);
change.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int random = (int) (Math.random() * revertText.length);
textChange.setText(revertText[random]);
}
});
}
}
我在 MainActivity 中定义的方法有效,但我似乎无法让它在我的其他类中工作。我正在尝试做的事情可能吗?我想在我的 TextC 类中定义 changeText2() 方法,但在 MainActivity 中声明,因为 MainActivity 具有 onCreate() 方法。
解决方案
尝试检查 OOP 概念的继承和覆盖。由于 MainAcitivity 是父类和 TextC 子类,因此您可以访问子类中的父函数,而不是其他方式。除非您弄清楚您正在寻找的确切结构,否则您尝试做的事情是不可能的。
您可能希望在 MainActicity 中将 changeText2() 函数声明为 public 或 protected,然后在需要时覆盖其在子类中的实现。
推荐阅读
- laravel - .htacces 用于 api 休息和管理面板
- c# - 如何在 LINQ 中按大小写排序
- javascript - React.js Redux 操作和减速器不会被启动
- r - 如何为 selectInput 中的选项赋值
- javascript - 使用 JSTL/EL 将 scriplet 变量分配给 javascript 变量
- python - 从 1 个元组中减去 3 个列表
- angular - Angularfire2 更新记录
- c++ - 无法删除结构指针内的指针数组(c ++)
- shell - 如何通过脚本显示“文件属性页面”
- android - Android:共享元素 - 返回过渡不起作用