2012-01-04 108 views
-2

是新到Android 我见过很多例子创建按钮,但我就是不能把什么每一行的意思是:( 采取以下一段代码作为前。按钮使用onClickListener

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?只是标签为按钮?为什么有两个单一的按钮...

+4

亲爱的,您需要在您的Android中安装一本Android手册/ PDF /教程。 – 2012-01-04 09:31:40

+1

http://developer.android.com/index.html是最好的了解android – Praveenkumar 2012-01-04 09:35:09

+0

研究一些教程和开始编程 – 2012-01-04 09:44:21

回答

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:[email protected]+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()是什么,只要想想这样。视图是人。 Id是名称。所以最后你正在通过名称(“无论这是什么”)找到该男子

+0

伟大的解释花花公子。即使是外行人也能理解它。 +1 – 2012-01-04 09:43:04

0

在Android中,您通常在XML文件中定义Activity的布局。您想要在代码中进行交互的布局中的每个View元素都需要一个id。在你的例子中,布局XML文件需要有一个ID为button_connect的按钮。

在Activity的onCreate()方法中,您通常会调用setContentView()并将它传递给您想要在此Activity中使用的布局。例如。 setContentView(R.layout.my_layout);其中您的布局文件的名称是my_layout.xml。

setContentView()方法将定义的布局构建为对象,使用findViewById(R.id.button_connect)您从此布局获得对Button对象的引用,其编号为button_connect

Log.i()只是在日志猫的标签“CONNECT PRESSED”下记录消息“按”。

0

这似乎是你没有阅读有关android应用程序开发的基本知识。 Android开发者网站提供的信息,以学习Android应用程序开发的好例子和教程。您只需复制教程中的代码就可以提出非常基本的要求。

其实它并不适合这类问题。首先通过阅读网络上的教程来练习。

即将发布您对此处发布的代码的怀疑,这些都是非常基本的事情。

  1. findViewById()发现通过现场ID,它是在XML布局文件中声明如下
  2. Log.i()视图是您的应用程序启用调试时在你的logcat窗口中显示的logcat信息消息。
0

在你的榜样,你可能已经定义了一个xml布局文件作为活动的风格与setContentView(R.layout.myXMLLayout);

如果没有,findViewById(R.id.button_connect)将失败。 R.id.button_connect指的是在您的xml布局中创建的id。 在<Button>标签中必须有一行android:id="@+id/button_connect"

findViewById发现这个按钮(这是比较genereally一个view,这就是为什么你必须findViewById(......),然后将其与(Button)转换为Button)。然后,您可以参考您在xml中放置的按钮。

Log.i("CONNECT PRESSED","press");根本没有必要。它只是按下按钮并将其显示在log cat中。它可以被删除而不会有任何进一步的影响这仅用于调试,应该删除代码的任何最终(公共)版本。

相关问题