java - 如何从另一个类(使用 ViewHolder)调用 MainActivity 中的方法?

标签 java android

我有一个 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/

相关文章:

java - 输出文件包含 Mapper Output 而不是 Reducer 输出

android - 像谷歌地图 v7 这样的滑动布局

android - 引用 ViewPager 中的不可见 fragment

java - spinner.setAdapter() 中的 NullPointerException

java - FCM 没有看到从 Spring 后端应用程序发送的消息

java - Springboot 测试与 commandLineRunner 给出不同的结果

java - Hibernate session 未创建

android - 如何显示操作栏列表?

java - 工具栏未显示在 MainActivity 前屏幕中。谁能帮我?

java - 从字符串中删除特定标记