java - 在动态 View 中绑定(bind)到 Button

标签 java android events event-handling

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

目前我尝试创建一个按钮点击事件,该事件应该绑定(bind)到动态加载的 View 内的按钮。

我的部分 Activity :

 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" />

在“错误”行中,我尝试从 View 中获取按钮。我怎样才能访问它?

仅就我的理解而言:作为一个按钮似乎是一个 View :Java 中的“View”与 C# WinForms 中的“Control”大致相同吗?

最佳答案

替换 myButton = rootView.findViewById("@+id/buttonTest");myButton = (Button) rootView.findViewById(R.id.buttonTest);

预期的 int 是在 R.id 中引用的已创建 View 的 id。

关于java - 在动态 View 中绑定(bind)到 Button,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19989901/

相关文章:

java - 如何在Java中组合两个网格位置?

android - Advanced Task Killer 如何真正杀死一个进程?

android - IllegalArgumentException:无法在 FileProvider.getUriForFile 上找到包含 xxx 的配置根目录

asp.net - ASPX和ASCX之间的事件

java - 无法解析 Android Studio 上的 R.layout.splash

java - 黑客排名java字符串正则表达式用户名

java - 无效的目标版本 : 1. 7

安卓内购 : Handle already buyed items

ScrollView 中的 Android 可触摸项目

javascript - 单击按钮清除对象属性