主要活动没有开始

时间:2015-02-08 03:24:54

标签: android android-intent

我的程序中有两个活动,您可以在文本字段中键入内容,然后单击按钮将其发送到显示它的另一个活动。但是,显示它的那个首先出现。 可能是他们同时开始,我不确定。 我的主要活动

public class MainActivity extends ActionBarActivity {

   public final static String EXTRA_MESSAGE = "   com.mycompany.myfirstapp.MESSAGE";
   @Override
   protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    startActivity(new Intent(getApplication(), second.class));
    }
    public void sendMessage(View view) {

    Intent intent = new Intent(this, second.class);
    EditText editText = (EditText) findViewById(R.id.edit_message);
    String message = editText.getText().toString();
    intent.putExtra(EXTRA_MESSAGE, message);
    startActivity(intent);
    // Do something in response to button
    }

随附的xml文件      

<LinearLayout
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent"

    android:layout_alignParentStart="true">

      <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/button_send"
        android:id="@+id/button"
        android:singleLine="false"
        android:focusableInTouchMode="true"
        android:onClick="sendMessage" />

      <EditText

        android:layout_height="wrap_content"
        android:id="@+id/edit_message"
        android:hint="@string/edit_message"
        android:layout_weight="1"
        android:layout_width="0dp" />

    </LinearLayout>
</RelativeLayout>

我的机器人清单          

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".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=".second"
        android:label="@string/title_activity_second"
        android:parentActivityName=".MainActivity" >
      <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.mycompany.myfirstapp.MainActivity" />
    </activity>
</application>

我的第二个.java文件

public class second extends ActionBarActivity {

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

2 个答案:

答案 0 :(得分:0)

如果您要使用intent调用second.class,那么您需要在清单活动中标记一个intent-filter。这类似于第一类。

<intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

所以你的android显示应该是这样的:

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
    android:name=".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=".second"
    android:label="@string/title_activity_second"
    android:parentActivityName=".MainActivity" >
  <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
  </intent-filter>
  <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value="com.mycompany.myfirstapp.MainActivity" />
</activity>

详细了解Intents here

答案 1 :(得分:0)

你的专栏:

startActivity(new Intent(getApplication(), second.class));

在第一个活动开始后立即开始。

删除此行,因为您已经在sendMessage()中执行了所需操作。