gpt4 book ai didi

java - 如何定义从另一个类在 MainActivity 中调用的方法?

转载 作者:行者123 更新时间:2023-12-02 09:22:24 24 4
gpt4 key购买 nike

我想在我创建的另一个类中定义 MainActivity 中的方法。我在解决这个问题时遇到问题。这可能吗?我在网上没有找到任何有关在另一个类中定义方法的信息。

我已经包含了我的代码以及我想要如何做到这一点的示例。

我的主要 Activity 代码

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 ,然后在需要时在子类中重写其实现。

关于java - 如何定义从另一个类在 MainActivity 中调用的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58601370/

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