startActivity(intent);失败:进程意外停止

sling2007 2014-03-07 03:01:36
Hi,开始写android例子,测试在两个activity之间,用intent跳转的时候,发现startActivity(intent)这个句子总是失败。
想实现从MainActivity带参数跳转到SubActivity,配置如下,请各位大虾点一下啊:
MainActivity.java

public class MainActivity extends Activity implements OnClickListener {
Button submit;
TextView view1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
submit = (Button) this.findViewById(R.id.submit);
view1 = (TextView) this.findViewById(R.id.view1);
submit.setOnClickListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setClass(MainActivity.this, SubActivity.class);// 从哪里来,到哪里去
intent.putExtra("view1", view1.getText());
intent.putExtra("view11", view1.getText() + "1123");
startActivity(intent);//注释掉这里,不会报错。所以应该是这里出错了
}
}


AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.t1"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="18" />

<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=".SubActivity"
android:label="@string/app_name" />
</application>
</manifest>


activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="50dp" >

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="name: " />

<TextView
android:id="@+id/view1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="张三丰" />
</LinearLayout>

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="70dp" >

<Button
android:id="@+id/submit"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="提交" />
</LinearLayout>
</LinearLayout>


sub.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:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="用户名: " />

<TextView
android:id="@+id/subview1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="62dp"
android:layout_weight="1"
android:text="" />

</LinearLayout>

SubActivity.java

package com.example.t1;

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

public class SubActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.sub);
TextView subview1 = (TextView) this.findViewById(R.id.subview1);
Intent intent = this.getIntent(); // 获得当前的Intent
String value = intent.getStringExtra("view1"); // 获得名为name的值
String value1 = intent.getStringExtra("view11"); // 获得名为name的值
subview1.setText(value + "=" + value1);
}
}

...全文
835 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_18283959 2014-09-02
  • 打赏
  • 举报
回复
我的还是没有解决哦 控件建立的时候就会有那两个属性的了 所以我的不是那个问题 不知道是什么问题
sling2007 2014-03-07
  • 打赏
  • 举报
回复
引用 2 楼 sling2007 的回复:
发现虽然可以用物理手机直接调试,但是还是用avd吧,因为这里的日志出书很方便。。。
在eclipse的ddms中可以控制日志,用真机也挺方便。。。
sling2007 2014-03-07
  • 打赏
  • 举报
回复
引用 3 楼 heaimnmn 的回复:
额,是这个原因么,我还以为是因为你的代码不规范了,,,
嗨,刚碰到一个问题,用(String)view1.getText()方式就报Cast。。。。异常了 用日志看到是SpannableStringbuilder不能String的父类,不能强制转型,所以用你说的toString方法搞定了。 还是要3333333333333333Q
哎,真难 2014-03-07
  • 打赏
  • 举报
回复
额,是这个原因么,我还以为是因为你的代码不规范了,,,
sling2007 2014-03-07
  • 打赏
  • 举报
回复
找到了,是sub.xml的问题。 通过部署在avd上,用logcat发现日志中,提示textview的长宽度没有设置, 只要增加android:layout_width="wrap_content" android:layout_height="wrap_content"就可以了。 已经在LZ原帖中修改。。。。 问题真是坑爹啊。 发现虽然可以用物理手机直接调试,但是还是用avd吧,因为这里的日志出书很方便。。。
哎,真难 2014-03-07
  • 打赏
  • 举报
回复
建议这样改
intent.putExtra("view1", view1.getText().toString());
        intent.putExtra("view11", view1.getText().toString() + "1123");
                MainActivity.this.startActivity(intent);

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧