当前位置: 首页 > 知识库问答 >
问题:

Android,意图不起作用?

国高杰
2023-03-14

这是我的密码。这很简单,但当我点击按钮“button1”时,什么都没有发生。我做错了什么?

public class TestTab extends Activity {

    Button button1;
        Intent i;


    @Override

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


        button1 = (Button) findViewById(R.id.btnScore);
        button1.setOnClickListener(new View.OnClickListener() {


            @Override
            public void onClick(View v) {

                Toast.makeText(getApplicationContext(), "On Click Event", 5000).show();

                //i = new Intent(TestTab.this, AndroidTab.class);
                //startActivity(i);

            }

        });
   }}

第二个--

package com.example.picturegame2;

import android.app.TabActivity;


public class AndroidTab extends TabActivity {

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

        TabHost tabHost = getTabHost();

        TabSpec localspec = tabHost.newTabSpec("Local");
        localspec.setIndicator("Local", getResources().getDrawable(R.drawable.friend));
        Intent localIntent = new Intent(this, local.class);
        localspec.setContent(localIntent);

        TabSpec worldwidespec = tabHost.newTabSpec("worldwide");
        worldwidespec.setIndicator("Worldwide", getResources().getDrawable(R.drawable.worldwide));
        Intent worldwideIntent = new Intent(this, worldwide.class);
        worldwidespec.setContent(worldwideIntent);

        tabHost.addTab(worldwidespec);
        tabHost.addTab(localspec);



    }


}

第三个--

package="com.example.picturegame2"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="15" />

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        android:label="@string/title_activity_main" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".local"/>
    <activity android:name=".AndroidTab"/>
    <activity android:name=".TestTab"/>
    <activity android:name=".tabzz"/>
    <activity android:name=".worldwide"/>
</application>

布局--

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <Button
        android:layout_width="250dp"
        android:layout_height="100dp"
        android:text="Start New Game"
        android:id="@+id/BtnGame"
        android:textSize="35dp"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="20dp"
        />

    <ListView 
        android:id="@+id/LsOpenGames"
        android:layout_width="250dp"
        android:layout_height="210dp"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="130dp" 

        ></ListView>

    <Button
        android:layout_width="120dp"
        android:layout_height="40dp"
        android:text="Profile"
        android:id="@+id/btnProfile"
        android:textSize="15dp"
        android:layout_marginLeft="40dp"
        android:layout_marginTop="375dp"
        />

    <Button
        android:layout_width="120dp"
        android:layout_height="40dp"
        android:text="Score"
        android:id="@+id/btnScore"
        android:textSize="15dp"
        android:layout_marginLeft="170dp"
        android:layout_marginTop="375dp"
        />

</RelativeLayout>

新Logcat:11-29 12:15:39.552:D/gralloc_goldfish(613):检测到没有GPU仿真的模拟器。11-29 12:15:40.062:I/编舞(613):跳过51帧!应用程序可能在其主线程上做了太多工作。11-29 12:16:08.902:I/编舞(613):跳过30帧!应用程序可能在其主线程上做了太多工作。

共有3个答案

璩正志
2023-03-14

可能有两个问题

>

  • 你两次声明你的意图,首先是全球,然后是本地。该系统可能参考了全球减赤。

    其次,您使用了

    button1.setOnCLickListener(new Button.OnClickListener()
    
    ...     );
    

    在这里你应该使用,

    button1.setOnClickListener(new View.OnClickListener()
    

  • 司空祯
    2023-03-14
    public class TestTab extends Activity {
    
    Button button1;
    
    @Override
    
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
    
        button1 = (Button) findViewById(R.id.btnScore);
        button1.setOnClickListener(new Button.OnClickListener() {
    
        @Override
        public void onClick(View v) {
        // TODO Auto-generated method stub
        Intent i = new Intent(TestTab.this, AndroidTab.class);
        //i.setAction(Intent.ACTION_CALL_BUTTON);
        startActivity(i);
    
            }
    
        });
    }
    
    
    }
    
    闾丘康安
    2023-03-14

    您必须像这样删除全局声明的Intent变量,

     Button button1;
     @Override
    
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
    
            button1 = (Button) findViewById(R.id.btnScore);
            button1.setOnClickListener(new Button.OnClickListener() {
    
            @Override
            public void onClick(View v) {
    
             Intent i = new Intent(TestTab.this, AndroidTab.class);
             startActivity(i);
    
                }
    
            });
        }
    

    或者试试这个,

         Button button1;
         Intent i;
    
    
    @Override
    
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
    
        button1 = (Button) findViewById(R.id.btnScore);
        button1.setOnClickListener(new Button.OnClickListener() {
    
        @Override
        public void onClick(View v) {
    
         i = new Intent(TestTab.this, AndroidTab.class);
         startActivity(i);
    
            }
    
        });
    }
    

    您的start Active(i)可能引用了您忘记初始化的全局声明的Intent变量,并在本地创建了一个与全局声明的Intent对象同名的“i”对象。

    如果上述想法对你没有帮助,那么正如用户Yajneshwar Mandal所建议的那样,你需要尝试一下。或者在ClickListener中放置一个日志,查看控件是否进入其中。

     类似资料:
    • 我试图在facebook messenger上共享音频文件。如下所述https://developers.facebook.com/docs/messenger/android#integration_with_intents在这里,它可以共享简单的文本而不是音频文件。当我尝试在messenger上发送音频时,应用程序崩溃。 这是意图共享代码字符串mimeType=“音频/aac”;

    • 我正在尝试使用NavigationDrawerFragment调用另一个活动。在我的onoptionItemSelected下,我创建了一个意图并调用所述意图,但由于某种原因,它显示为一个错误。 我想知道为什么它不起作用,因为: > 我也在清单上加了它 其他活动也在调用HomeActivity类,它似乎工作得很好。 @重写公共布尔值onOptionsItemS选(MenuItem项目){if(mD

    • 我遵循了https://developer.android.com/training/app-indexing/deep-linking.html上的insttructions,但当我想通过触发意图时: 我只是得到 我犯了什么明显的错误吗?

    • 这是我的清单文件 我已经添加了文档和之前的stackoverflow答案中推荐的图像捕获,但它仍然不起作用。它在Anroid 10中运行良好,但在11中不起作用。 提前感谢。

    • 问题内容: 我有一个 应在单击时更改 的 imageview 单击该方法将运行并打印出“嘿!”。 但是图像不会改变吗? 编辑 :忘记提及包含由xml布局文件提供的另一个图像 问题答案: 按照惯例,您应该使用(或)代替。