2012-09-26 41 views
0

我是新android開發。設置完一個android項目後,我嘗試獲取文本輸入並將其傳遞到另一個活動(屏幕)。應用程序意外地停止 - Android電子

當我運行該項目,我沒有得到一個錯誤,但是當我點擊該應用程序在它給人的錯誤「應用程序意外終止」屏幕單擊按鈕時,顯示的第一個屏幕即可。

當我從沒有第一個屏幕將數據傳遞到第二屏幕的代碼時,應用程序工作正常。

這是MainActivity.java文件:

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

public class MainActivity extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     final EditText et= (EditText) findViewById(R.id.editText1); 
     Button b = (Button)findViewById(R.id.button1); 

     b.setOnClickListener(new OnClickListener() { 


      public void onClick(View v) { 
     //intent class is used for activating another or component or an activity 
      Intent intent =new Intent(MainActivity.this, Second.class); 
       intent.putExtra("textval", et.getText().toString()); 
       startActivity(intent); 
      } 
     });}} 

這裏是Second.java文件的代碼:

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

public class Second extends Activity { 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 

    TextView tv= (TextView) findViewById(R.id.textView1); 
    tv.setText(getIntent().getExtras().getString("textval")); 


} 
} 

這裏是activitymain.xml代碼:

<?xml version="1.0" encoding="UTF-8"?> 
<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"> 

    <EditText android:id="@+id/editText1" android:layout_width="wrap_content" 
     android:layout_height="wrap_content" android:layout_alignParentLeft="true" 
     android:layout_alignParentRight="true" android:layout_alignParentTop="true" 
     android:ems="10" 
     android:inputType="text" 
     > 

     <requestFocus /> 
    </EditText> 

    <Button android:id="@+id/button1" android:layout_width="wrap_content" 
     android:layout_height="wrap_content" android:layout_alignParentLeft="true" 
     android:layout_below="@+id/editText1" android:layout_marginTop="28dp" 
     android:text="@string/button" /> 

</RelativeLayout> 

這是第二個XML文件:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" android:layout_height="match_parent" 
    android:orientation="vertical"> 

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

</LinearLayout> 

請幫我找到錯誤。由於我沒有收到錯誤通知,我無法繼續。

在此先感謝...

+0

你有沒有試過**用戶:Aprian **的回答? – Praveenkumar

回答

1

在android清單文件中聲明第二個活動。

<activity android:name=".Second"/> 

在第二項活動中添加setContentView(R.layout.second);

+0

我已經添加了。 – newday

1

這是你錯過了你的Second.java什麼:

setContentView(R.layout.second); 

把它上面的textview聲明。

+0

謝謝Aprian,那是我的代碼中的錯誤。謝謝你幫助我。 – newday

+0

+1正確答案。 – Praveenkumar

+0

@menukadevinda偉大和np – Aprian

1

在你的第二個Java文件進行更改如下

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

public class Second extends Activity { 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.second); 

    TextView tv= (TextView) findViewById(R.id.textView1); 
    tv.setText(getIntent().getExtras().getString("textval")); 


} 
} 
0

的第二個活動條目添加在您的清單文件。 將第一個活動設置爲啓動程序,將其他設置爲默認設置。 在這裏我有兩個活動MainActivity和Player。 首先我啓動MainActivity,然後調用其他活動播放器

注 - 活動名稱應與類名稱相同,因此在Manifest文件中也應保持相同。

還需要指定佈局文件中的onCreate功能都通過活動的setContentView。

下面是示例代碼 -

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.vt.soc" 
    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=".Player" 
      android:label="@string/title_activity_main" > 
      <intent-filter> 
       <action android:name="com.vt.soc.PALYER" /> 

       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 
0

-在你的第二個活動,你忘了加setContentView()

protected void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 

    setContentView(R.layout.second); 

    TextView tv= (TextView) findViewById(R.id.textView1); 
    tv.setText(getIntent().getExtras().getString("textval")); 


} 

-另外,請看到你Manifest.xml文件添加此Second Activity