我是android新手 我已经看到很多关于创建按钮的例子,但我无法得到每行的含义:( 将以下代码作为前例。
connect = (Button) findViewById(R.id.button_connect)
connect.setOnClickListener(connectListener)
private OnClickListener connectListener = new OnClickListener() {
public void onClick(View v) {
Log.i("CONNECT PRESSED", "press")
// ....
// ....
// ....
};
我所知道的是第一行定义一个按钮,但是它是findViewbyId? 我知道第二行 但是在定义监听器时,什么是log.i? nd r“connect pressed”和“press”只是按钮的标签? f为什么有两个单按钮......
答案 0 :(得分:2)
在这些行之前你应该有一个额外的Button connect;
。
connect = (Button) findViewById(R.id.button_connect) // findViewById() in layman term it means, finding view by id. Which also means finding the view(button/textview/edittext) by ID(value you stated in your main.xml for the view. e.e. android:id=@+id/"")
connect.setOnClickListener(connectListener) //listens to a click when clicked
private OnClickListener connectListener = new OnClickListener() { //if button of android:id="button_connect" is clicked, Do this method.
public void onClick(View v) {
Log.i("CONNECT PRESSED", "press") //prints message in your logcat
// ....
// ....
// ....
};
如果你仍然不明白findViewById()是什么,那就这样想吧。观点是人。我是名字。所以最后你会找到名字的男人(“不管这是什么”)
答案 1 :(得分:0)
在Android中,您通常会在XML文件中定义活动的布局。要在代码中与之交互的布局中的每个View元素都需要一个id。在您的示例中,布局XML文件需要具有标识为button_connect
的按钮。
在Activity的onCreate()方法中,您通常调用setContentView()并将要在此Activity中使用的布局传递给它。例如。 setContentView(R.layout.my_layout);
您的布局文件名称为my_layout.xml。
setContentView()方法将定义的布局构建为对象,使用findViewById(R.id.button_connect)
,您可以从此布局中获取对象button_connect
的Button对象的引用。
Log.i()
只是在日志cat中的“CONNECT PRESSED”标记下记录“按”消息。
答案 2 :(得分:0)
好像你没有阅读有关Android应用程序开发的基本知识。 Android开发者网站提供信息,以学习Android应用程序开发与良好的示例和教程。你只需要复制教程中的代码就可以了解非常基本的东西。
实际上它不适合这类问题。首先通过阅读网络上的教程来练习。
对于您在此处发布的代码表示怀疑,这些是非常基本的事情。
答案 3 :(得分:0)
在您的示例中,您可能已使用xml
setContentView(R.layout.myXMLLayout);
布局文件定义为您的活动样式
如果没有,findViewById(R.id.button_connect)将失败。
R.id.button_connect
是指在id
布局中创建的xml
。
android:id="@+id/button_connect"
代码中必须有一行< Button >
。
findViewById
找到此按钮(更通常是view
,这就是为什么你必须在findViewById(...之前)将Button
转换为(Button)
的原因。 。))。然后,您可以参考您放入xml中的按钮。
Log.i("CONNECT PRESSED","press");
。按下该按钮只需logging
,并将其显示在log cat
中。可以在不进一步影响的情况下将其移除。这仅用于调试,应该删除代码的任何最终(公共)版本。