2013-07-03 2 views
1

내 프로젝트는 교육 목적으로 만 매우 간단합니다. 메인 레이아웃의 버튼을 클릭하면 다른 인터페이스 /보기/액티비티를로드하려고합니다. 다음은 주 활동 코드입니다.버튼을 클릭하여 다른 작업을 시작할 수 없습니다.

package com.example.interfacemanipulation;

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; 
    } 

} 

여기에 코드가 기본적으로 구글 문서에서 수정 :

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); 
    } 

} 

그리고 이것은 다른 활동 코드입니다. 나는 그 안에 레이블이있는 두 번째 활동의보기를로드 할 수 있기를 원한다. 여기 내 매니페스트입니다 : ... 내가 마지막 4 일 동안 안드로이드를하려고했는데

<?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> 

그래서 나는 주요 활동의 레이아웃 XML에서 지원

+1

내가 볼 수 없습니다를'goToWelcomeActivityMethod' ...이거나 당신은 문제가있는거야? –

+0

'setContentView (R.layout.activity_main); '이 MainActivity 레이아웃은 WelcomeActivity에 대한 레이아웃을 정의 했습니까 ?? –

답변

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" /> 
관련 문제