首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在AndoridManifest.xml中定义OnClickListener

在AndoridManifest.xml中定义OnClickListener
EN

Stack Overflow用户
提问于 2013-01-27 13:13:45
回答 1查看 573关注 0票数 3

我使用OnClickListener链接menu.java文件中的所有按钮,并在清单中定义了它,但按钮不起作用。我想我可能把它放错了清单。

Menu.java

代码语言:javascript
运行
复制
package com.invoice;

import android.app.Activity;
import android.os.Bundle;
import android.view.View.OnClickListener;
import android.view.View;
import android.widget.Button;

public class menu extends Activity implements OnClickListener {
    /** called the activity is first created. */
    Button button1, button2, button3, button4, button5;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        button1 = (Button)findViewById(R.id.button1);
        button2 = (Button)findViewById(R.id.button2);
        button3 = (Button)findViewById(R.id.button3);
        button4 = (Button)findViewById(R.id.button4);
        button5 = (Button)findViewById(R.id.button5);
        button1.setOnClickListener(this);
        button2.setOnClickListener(this);
        button3.setOnClickListener(this);
        button4.setOnClickListener(this);
        button5.setOnClickListener(this);
    }   
    public void onClick(View v) {
        //TODO Auto-generate method stub
        //figure out which button was pressed
        switch (v.getId()) {
        case R.id.button1:
            //do button1 action
            break;
        case R.id.button2:
            //do button2 action
            break;
        case R.id.button3:
            //do button3 action
            break;
        case R.id.button4:
            //do button4 action
            break;
        case R.id.button5:
            //do button5 action
            break;
        }


        }
    }

对应的Java文件(每个按钮都有单独的java文件)

代码语言:javascript
运行
复制
package com.invoice;


import android.app.Activity;
import android.os.Bundle;

public class Job extends Activity
{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.job);
    }

}

我为清单中的每个按钮添加了以下内容:

代码语言:javascript
运行
复制
<activity android:name=".Help"
            android:label="@string/app_name">
            <intent-filter>
                <action android:name="com.invoice.help" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            </activity> 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-27 13:24:01

您需要调用startActivity方法,以便在每次单击按钮时启动活动,如下所示:

代码语言:javascript
运行
复制
public void onClick(View v) {
        switch (v.getId()) {
        case R.id.button1:
            //do button1 action

            // start next activity here
            Intent intent=new Intent(menu.this,Job.class);
            startActivity(intent);
            break;
         ///.... same for all buttons 

        }
   }

您必须先在AndroidManifest.xml中注册所有活动,然后才能将其用作:

代码语言:javascript
运行
复制
<activity android:name=".menu"
   android:label="@string/app_name">
   <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
   <intent-filter>
    </activity>
<activity android:name=".Help" />
<activity android:name=".Job" />
//.....same for others
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14544645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档