我正在尝试在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附加到onClick上,但它只能像文本一样添加,所以当我在AVD上启动app时会发出很多警告
答案 0 :(得分: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);
} });
答案 1 :(得分:2)
您可以为新活动创建意图,添加任何额外内容,并通过上下文启动活动:
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);
}
}
答案 2 :(得分:1)
您可以按照以下方式启动活动
Intent intent= new Intent(YourFirstActivity.this, YourSecondActivty.class);
startActivity(intent);
如果你想要一些结果回到第一个活动
你应该从
开始startActivityForResult(intent);
并实施onActivityResult
这样做
在你的xml中设置onClick="onClick"
像
<Button android:id="@+id/Button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onClick"/>
public void onClick(View view)
{
Intent intent= new Intent(YourFirstActivity.this, YourSecondActivty.class);
startActivity(intent);
}
了解详情