我有一个 Activity 。我必须在此 Activity 的另一个类中运行一个方法。我在另一个类中使用 ViewHolder。有人告诉我直接调用该类时需要添加一个“super()”方法。但我不能这样做。因为我已经添加了。尽管我以不同的方式调用该方法,但我被告知需要将该方法设置为静态。但这样一来,Textview和按钮在这个类中就不起作用了。我不知道该怎么办,也找不到解决办法。如果您能提供帮助,我会很高兴。
My Activity;
public class MainActivity extends AppCompatActivity implements RewardedVideoAdListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//First Step - DOES NOT WORK !!!!
MyClass myClass = new MyClass();
myClass.myMethod();
//Doesn't work. Because i want to add super() method to MyClass. But i was added earlier. I can't use again.
//Secondly Step - DOES NOT WORK !!!!
MyClass .myMethod();
//Doesn't work. Because i want to add public void static to method. If i add static my method, i can't use buttons or textviews.
}
}
MyClass;
public class MyClass extends RecyclerView.ViewHolder {
//Example
public TextView mytextview;
private boolean myboolean = false;
public MyClass (View itemView) {
super(itemView);
mytextview= (TextView)itemView.findViewById(R.id.mytextview);
}
public void myMethod(){
myboolean = false;
if (!myboolean){
myboolean = true;
mytextview.setVisibility(View.VISIBLE);
}
else {
myboolean = false;
mytextview.setVisibility(View.INVISIBLE);
}
}
//If i static method, doesn't work other view. example:textview.setvisibility or myboolean=true etc.... I can't use private static Textview or others...
public static void myMethod(){
myboolean = false;
if (!myboolean){
myboolean = true;
mytextview.setVisibility(View.VISIBLE);
}
else {
myboolean = false;
mytextview.setVisibility(View.INVISIBLE);
}
}
}
最佳答案
在您的 MainActity 中执行此操作。
public class MainActivity extends AppCompatActivity implements RewardedVideoAdListener
{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView yourActivityMainTextView=findViewById(R.id.your_txt_view_id) //from activity
main xml
MyClass myClass = new MyClass(yourActivityMainTextView);
myClass.myMethod();
}
}
关于java - 如何从另一个类(使用 ViewHolder)调用 MainActivity 中的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59870708/