2013-07-03 59 views
1

我的项目只是为了培训目的而非常简单。我试图加载另一个界面/视图/活动,当我点击我的主布局上的按钮。以下是主要活动的代码:只需点击按钮即可启动另一项活动

package com.example.interfacemanipulation;

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.View; 
import android.widget.EditText; 

public class MainActivity extends Activity { 

    public static final String EXTRA_MESSAGE = "Something Here...."; 

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


    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

    public void goToWelcomeActivityMethod(View view) 
    { 
     Intent intent = new Intent(this, WelcomeActivity.class); 
     EditText editText = (EditText) findViewById(R.id.welcomeMessage); 
     String message = editText.getText().toString(); 
     intent.putExtra(EXTRA_MESSAGE, message); 
     startActivity(intent); 
    } 

} 

而且这是在其他活动代码:

package com.example.interfacemanipulation; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.Menu; 
import android.widget.TextView; 

public class WelcomeActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     Intent intent = getIntent(); 
     String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE); 
     TextView textView = new TextView(this); 
     textView.setTextSize(40); 
     textView.setText(message); 

     // Set the text view as the activity layout 
     setContentView(textView); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.welcome, menu); 
     return true; 
    } 

} 

这里的代码基本上是从谷歌文档进行修改。我只是想能够加载标签中的第二个活动的视图。这里是我的清单:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.interfacemanipulation" 
    android:versionCode="1" 
    android:versionName="1.0" > 

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

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name="com.example.interfacemanipulation.MainActivity" 
      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="com.example.interfacemanipulation.WelcomeActivity" 
      android:label="@string/title_activity_welcome" > 
     </activity> 
    </application> 

</manifest> 

我只是一直在努力为持续4天的android ...所以我感谢您的支持

+1

我不明白'goToWelcomeActivityMethod' ...或者是你遇到麻烦怎么办? –

+0

'setContentView(R.layout.activity_main);'您为MainActivity的这个布局是否为WelcomeActivity定义了任何布局? –

回答

2

你有2个问题:1。你没有按钮,带你到活动(或者至少你还没有在代码中显示它你发布了,如果你这样做,那么你没有为该按钮设置onClickListener)。 2.你不打电话给你的第二个活动的方法。

为了有一个按钮,把你带到另一个活动,你需要将按钮添加到布局,然后添加onClickListener,它执行你的goToWelcomeActivityMethod,当你点击它,就像这样:

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.View; 
import android.widget.EditText; 

public class MainActivity extends Activity { 

    public static final String EXTRA_MESSAGE = "Something Here...."; 

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

     //this will insert the button into the Main Activity layout 
     Button goToWelcome = (Button)findViewById(R.id.goToWelcome); 

     //this is the onClickListener which will call the method to go to the next activity 
     goToWelcome.setOnClickListener(new View.OnClickListener() 
     { 
      public void onClick(View v) 
     { 
      goToWelcomeActivityMethod(); 
     } 
     }); 
    } 


    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 
    //you don't need to pass in the View 
    public void goToWelcomeActivityMethod() 
    { 
     Intent intent = new Intent(this, WelcomeActivity.class); 
     EditText editText = (EditText) findViewById(R.id.welcomeMessage); 
     String message = editText.getText().toString(); 
     intent.putExtra(EXTRA_MESSAGE, message); 
     startActivity(intent); 
    } 

} 

然后在XML文件中,确保你添加太多的按钮:在您调用

<Button 
     android:id="@+id/goToWelcome" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:text="Go To Welcome" /> 
相关问题