使用onClickListener的按钮

时间:2012-01-04 09:24:31

标签: android

我是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为什么有两个单按钮......

4 个答案:

答案 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应用程序开发与良好的示例和教程。你只需要复制教程中的代码就可以了解非常基本的东西。

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

对于您在此处发布的代码表示怀疑,这些是非常基本的事情。

  1. findViewById()找到一个按字段ID查看,在XML布局文件中声明如下
  2. Log.i()是在应用程序中启用调试时在logcat窗口中显示的LogCat信息。

答案 3 :(得分:0)

在您的示例中,您可能已使用xml

setContentView(R.layout.myXMLLayout);布局文件定义为您的活动样式

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

findViewById找到此按钮(更通常是view,这就是为什么你必须在findViewById(...之前)将Button转换为(Button)的原因。 。))。然后,您可以参考您放入xml中的按钮。

根本不需要{p> Log.i("CONNECT PRESSED","press");。按下该按钮只需logging,并将其显示在log cat中。可以在不进一步影响的情况下将其移除。这仅用于调试,应该删除代码的任何最终(公共)版本。