只需触摸屏幕即可启动新活动

时间:2014-08-29 20:09:52

标签: java android

我正在尝试推出一个全新的活动,当我触摸屏幕时会显示一个新的字符串。这是MainActivity代码。我的第一个活动显示了一个" hello world",我的新活动应该只显示一个新字符串。所有资源文件和清单都是正确的。但是,在onClick之后运行会继续崩溃。非常感谢任何帮助。

package com.example.myfirsttest;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;


public class MainActivity extends Activity{

    @Override
    protected void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.activity_main);


    //Call the NewActivity from the MainActivity
        View view = getWindow().getDecorView().findViewById(android.R.id.content);
        view.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                Intent startIntent = new Intent(MainActivity.this,NewActivity.class);
                startActivity(startIntent);

            }
        }); 
    }
}

1 个答案:

答案 0 :(得分:1)

有一种更好的方法可以实现这个目标

package com.example.myfirsttest;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;


public class MainActivity extends Activity{
private static final String MESSAGE_TAG = "my_message";

    @Override
    protected void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.activity_main);
    Bundle extras = getIntent().getExtras();
    String stringMessage = extras.getString(MESSAGE_TAG);
    TextView message = (TextView) findViewById(R.id.message);
    if(stringMessage != null && !stringMessage.isEmpty()) {
       message.setText(stringMessage);
    }


    //Call the NewActivity from the MainActivity
        View view = getWindow().getDecorView().findViewById(android.R.id.content);
        view.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                Intent startIntent = new Intent(MainActivity.this,MainActivity.class);
                startIntent.putExtra(MESSAGE_TAG, "hello second World");
                startActivity(startIntent);

            }
        }); 
    }
}

现在,您不需要为同一任务注册2个活动,即布局

 <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"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context=".MyActivity">

    <TextView
        android:id="@+id/message"
        android:text="@string/hello_world"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</RelativeLayout>

快乐的编码。