Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在动态视图中绑定到按钮_Java_Android_Events_Event Handling - Fatal编程技术网

Java 在动态视图中绑定到按钮

Java 在动态视图中绑定到按钮,java,android,events,event-handling,Java,Android,Events,Event Handling,我第一次尝试用java/android编写代码,我有点沮丧,因为我多年的c#知识似乎对我帮助不大 目前,我尝试创建一个buttonclick事件,该事件应绑定到动态加载的视图中的按钮 我活动的一部分: private Button myButton; public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { String selectedMenu

我第一次尝试用java/android编写代码,我有点沮丧,因为我多年的c#知识似乎对我帮助不大

目前,我尝试创建一个buttonclick事件,该事件应绑定到动态加载的视图中的按钮

我活动的一部分:

 private Button myButton;

 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

 String selectedMenu=getArguments().getString(ARG_SECTION_NUMBER);
   if (selectedMenu==getString(R.string.title_test)) {
        View rootView = inflater.inflate(R.layout.fragment_test, container, false);
        myButton=rootView.findViewById("@+id/buttonTest"); // ERROR?
        myButton.setOnClickListener(this);
        return rootView;
    }
  return  null;
}

 public void onClick(View v) {
    if (v==myButton) { 
       // magic stuff
    }
 }
和我的按钮定义:

 <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Test starten"
            android:id="@+id/buttonTest"
            android:layout_gravity="center_horizontal"
            android:onClick="TestSoap_OnClick" />

在“ERROR”行中,我尝试从视图中获取按钮。我如何访问它


我的理解是:按钮似乎是视图:Java中的“视图”与C#WinForms中的“控件”差不多吗?

试着从xml中删除android:onClick=“TestSoap\u onClick”行

并替换myButton.setOnClickListener(这个);
使用myButton.setOnClickListener(onClick)

尝试创建一个函数来处理onClick:在您的情况下,类似于:

public void TestSoap_OnClick(View view){
        doSomething();
    }
然后,当按下按钮时,它将自动调用此功能,因为您有:

android:onClick="TestSoap_OnClick"
替换
myButton=rootView.findviewbyd(“@+id/buttonTest”)带有
myButton=(Button)rootView.findViewById(R.id.buttonTest)


预期的
int
是在
R.id

中引用的已创建视图的id。但仍然无法帮助“找到”正确的按钮。在那一行,“myButton”只是一个空按钮对象,而不是该视图中的按钮。(findviewbyd()的工作方式与我编写的不同)注意:您还需要
导入com…R和非
Android.R