-1

我正在尝试在 Eclipse 中制作 Android 应用程序,该应用程序应包含 2 个活动:用户填写字段的第一个活动和应通过在第一个活动中按下按钮启动的第二个活动。

我已经阅读了许多有关意图的主题,收到了有关意图过滤器的所有可能信息,但我仍然不能只创建一个按钮并使用意图来启动活动。

请帮忙。

如果您有类似的分步说明如何做到这一点,那就太棒了。

好的,这就是我根据您的回答所做的->

我创建了一个应用程序。src 中有 4 个 java 文件:
Activity1.java - 我想要一个按钮来启动 Activity2 的活动,
Activity2.java - 处于默认状态,
MyActivity.java - 创建以粘贴 1Up 接收的代码,
View.java -我创建的空类是因为没有它我会看到很多错误,不知道如何正常删除它们。

然后我把 1Up 的代码放在 MyActivity 中,稍微编辑一下,这就是我得到的:

public class Activity1<i> extends Activity {
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity1, menu);
    return true;
}
public void onCreate() {
    // TODO Auto-generated method stub

}

    public void goToOtherActivity(View view)
    {
        Intent i = new Intent(this, Activity2.class);
        this.startActivity(i);
    }                                        }

然后我想现在我可以将 goToOtherActivity 附加到 Activity1 中的 onClick 但它只能像文本一样添加,所以当我在 AVD 上启动应用程序时会发出很多警告

4

3 回答 3

2

您为新 Activity 创建 Intent,添加任何附加内容,然后通过上下文启动 Activity:

Intent i = new Intent(context, MyOtherActivity.class);   //Initialize the Intent
i.putExtra("firstExtra", value);         //Put any extra you want
i.putExtra("secondExtra", secondValue);  //Remember the key you used
context.startActivity(i);      //Start the activity with the given intent

您可以将其放在按钮的 onClick 事件中:

public void goToOtherActivity(View view)
{
    //CODE HERE
}

并像这样在xml中定义按钮:

<Button android:id="@+id/btnGo"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="goToOtherActivity"
    />

然后在另一个活动中,您可以获取额外内容并使用它们做任何您想做的事情:

@Override
public void onCreate(Bundle savedInstanceState)
{
    Intent i = getIntent();   //Get the intent used to run this Activity
    Bundle b = i.getExtras(); //Get all the extras
    String firstExtra = b.getString("firstExtra"); //Get one String extra with key "firstExtra"
    int secondExtra = b.getInt("secondExtra"); //Get one Integer extra with key "secondExtra"
    //USE YOUR DATA
}

编辑:

当我说将代码放入该方法时,我的意思是做这样的事情:

public class MyActivity extends Activity{

    @Override
    public void onCreate()
    {
        super.onCreate();
        //onCreate code here
    }

    public void goToOtherActivity(View view)
    {
        Intent i = new Intent(this, SecondActivity.class);
        this.startActivity(i);
    }
}
于 2013-09-15T13:05:28.600 回答
2

假设您想在触发某些事件时启动新活动(点击时)

例如,这里是 XML 布局

<LinearLayout
        android:id="@+id/start_btn"
        android:layout_width="75.0dip"
        android:layout_height="27.0dip"
        android:layout_marginRight="35.0dip"
        android:background="@drawable/green_btn"
        android:gravity="center_vertical"
        android:orientation="horizontal"
        android:paddingBottom="2.0dip"
        android:paddingLeft="8.0dip" >

        <ImageView
            android:id="@+id/start_image"
            android:layout_width="9.0dip"
            android:layout_height="14.0dip"
            android:src="@drawable/start_icon" />

        <TextView
            android:id="@+id/start_caption"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_marginLeft="5.0dip"
            android:gravity="center_vertical"
            android:text="Start Activity"
            android:textColor="#ffffffff"
            android:textStyle="bold" />
    </LinearLayout>

Intent可以用来开始新的活动

LinearLayout lBtn = (LinearLayout) findViewById(R.id.start_btn);
lBtn.setOnClickListener(new View.OnClickListener() {
     @Override public void onClick(View arg0) {
     Intent mAct = new Intent(this, ActivtyClass.class);
     startActivity(mAct);
    } });
于 2013-09-15T12:58:23.493 回答
1

您可以通过以下方式启动活动

Intent intent= new Intent(YourFirstActivity.this, YourSecondActivty.class);
startActivity(intent);

如果你想要一些结果回到第一个活动

你应该从

startActivityForResult(intent);

并实现 onActivityResult

onClick="onClick"在你的xml中做这个设置

喜欢

<Button android:id="@+id/Button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="onClick"/>

然后在你的java中

public void onClick(View view)
{
    Intent intent= new Intent(YourFirstActivity.this, YourSecondActivty.class);
    startActivity(intent);
}

从developer.android.com了解更多信息

于 2013-09-15T13:05:13.440 回答