涉足Android Studio,并通过一些教程,但我不理解一个概念。哦,也是java的新手......哈哈。
假设我有一个屏幕,一个活动,MainActivity.xml
带有一个按钮。
MainActivity.xml
为该按钮定义了onClick
属性goForIt
。
在MainActivity
课程中,我有一个方法goForIt
。
这是响应被点击的按钮的位置。
在goForIt
方法中,
我构建一个Intent来开始另一个活动,
并通过声明startActivity(intent)
问题:
为什么我需要一个听众? (如果我做)? MainActivity.xml
是特定方法的明确指令。或者是一个"听众"?
清单在这方面的作用是什么?活动在那里......但出于什么目的?再一次,能够找到类和方法是非常明确的,而不需要像清单那样查询查找....?
我对具有类的特定方法的显式属性的Activity XML感到困惑,然后同时,Listener说如果onClick发生了,那么做点什么......他们都试图做同样的事情,不是吗?
答案 0 :(得分:3)
2.Manifest文件可以帮助您实现多种目的: 指定首先启动哪个活动 获得访问互联网,获取校准日志,使用地图等的权限, 为每个活动指定主题或标签等等......
3.Both做同样的事情。一个是另一个的替代品。
答案 1 :(得分:2)
这个问题是广泛的,应该(可能会)关闭。
但是,这里是:
xml文件中的onClick属性是创建侦听器的快捷方式(在这种情况下,侦听器会在您的背后创建)。你可以使用它,也可以手工完成听众。
清单在此处没有任何作用(按下按钮)。但是有必要配置活动,以便在按下启动器图标时启动它(在许多其他事情中)。
Android API看起来好像从来没有正确设计......它只是成长和发展。所以是的,有多种令人困惑的方法可以做一件事。
答案 2 :(得分:1)
使用
<Button
android:id="@+id/button"
android:onClick="goForIt"/>
然后
public void goForIt(View v) {
startActivity(...)
}
与使用:
完全相同Button b = findViewById(R.id.button);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(...)
}
});
第一种选择只是一种解决方法,一种具有相同效果的短路径。 在内部,它只是第二种方式 - 按下按钮,添加一个点击监听器,并在用户点击按钮后立即运行。
当您的布局膨胀时(在您调用setContentView(R.layout.my_layout)
之后),android:onClick属性会在内部转换为以下内容:
Button b = findViewById(R.id.button);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
goForIt(v);
}
});
唯一的区别是它适合你。
清单在这种情况下没有任何作用。
答案 3 :(得分:0)
为什么我需要听众? (如果我做)? MainActivity.xml是特定方法的显式指令。或者那是一个&#34;听众&#34;?
认为你有10个按钮需要点击,所以Listener可以处理所有这些类型的按钮点击。
清单在这方面的作用是什么?活动在那里......但出于什么目的?再一次,能够找到类和方法是非常明确的,而不需要像清单那样查询查找....
从清单Android(应用程序管理器)了解您的应用程序的内容,例如,哪个页面是第1页或启动页面。
我对具有类的特定方法的显式属性的Activity XML感到困惑,然后同时,监听器说如果onClick发生了,那么做点什么......他们都试图做同样的事情,不是吗?
是的,他们正在做同样的事情,试着为他们使用听众。