我的Android Studio项目中有2个带有2个XML布局文件的Java类。第一个类是我的MainActivity类和第二个类显示的地图的容器。布局工作正常,但我的第二个类的XML文件中有一个Button,它被设置为在单击时调用我的第二个类中的方法。但该按钮只能调用我的MainActivity类中的方法。我怎么能让Button调用另一个方法,让我们说一个来自另一个类的方法而不是我的MainActivity类?
非常感谢您的帮助。
提前致谢。
/编辑:
我现在可以调用另一种方法,但每次尝试从MainActivity类访问某些内容时,应用程序都会崩溃。代码示例:
public void test() {
TextView tv = (TextView) getActivity().findViewById(R.id.textView);
tv.setText("2");
}
这是从MainActivity类调用的第二个类的方法。该调用工作正常,但我无法从布局中访问任何内容。如果它有助于该类是一个片段,其中包含一个MapView:
public class MapsFragment extends Fragment {
答案 0 :(得分:0)
在Mainactivity中创建第二个类的对象。 然后使用该对象来调用第二类的函数。
已编辑 -
我看到你不需要创建像fragment_obj.updateTextView();这样的函数。我将所有视图设置为类级别对象,并且能够直接更新textview。
fragmentObj.textViewLanguage.setText("Your Text Here!");
注意:如果您需要执行多个操作,那么可以使用函数。
使用功能 - 您可以使用
找到Fragment的实例对于支持库,
YourFragment fragment_obj = (YourFragment)getSupportFragmentManager().
findFragmentById(R.id.fragment_id);
否则
YourFragment fragment_obj = (YourFragment)getFragmentManager().
findFragmentById(R.id.fragment_id);
然后在Fragment中创建一个更新TextView并使用fragment_obj调用该方法的方法,
fragment_obj.updateTextView();
答案 1 :(得分:0)
您不必通过xml android:onClick
将xml按钮连接到方法,您可以通过代码轻松完成:
Button b = (Button) findViewById(R.id.my_button);
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// call the method
}
});
答案 2 :(得分:0)
进入您的XML代码并添加此属性android:onClick="OnClickMe"
,然后进入您想要访问其他方法的类,并添加控制Button点击的方法。
首先在Oncreate
Button b = (Button) findViewById(R.id.my_button);
然后创建一个方法来处理按钮单击,并在实例化实例化类中以访问所需的方法。假设您要访问ClassA
public void OnClickMe(View v ){
// Suppose you want to access a method from ClassA
ClassA accessmethod = new ClassA();
// this is how you can call your method in another class
accessmethod.MethodName();
}