java - 未找到处理类文件中 Intent 的 Activity

标签 java android android-intent android-activity

我对 Android 还很陌生。我正在学习如何在 Activity 中传递 Intent 。这是我在两个 Activity 之间传递 Intent 的代码。

  1. MainActivity.java

    public class MainActivity extends ActionBarActivity {
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
    Button b1 = (Button)findViewById(R.id.btOk);
    b1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            EditText etName = (EditText)findViewById(R.id.etName);
            String Data = etName.getText().toString();
    
            Intent i = new Intent("com.adhish.passingintentdata.layout2");
            Bundle extras = new Bundle();
            extras.putString("Name", Data);
            i.putExtras(extras);
            startActivityForResult(i,1);
        }
    });
    }
    
  2. layout2.java

    public class layout2 extends ActionBarActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_layout2);
    
    String myName = null;
    Bundle extras = getIntent().getExtras();
    if(extras != null)
    {
        myName = extras.getString("Name");
    }
    
    TextView tvData = (TextView)findViewById(R.id.tvData);
    tvData.setText(myName);
    }
    }
    
  3. Manifest.xml

    <application
    android:allowBackup="true"
    android:icon="@mipmap/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=".layout2"
        android:label="@string/title_activity_layout2"
        android:parentActivityName=".MainActivity" >
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.adhish.passingintentdata.MainActivity" />
    </activity>
    

当我运行此代码并单击“确定”按钮传递数据时,我的应用程序因 fatal error 而崩溃。

错误是:

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.adhish.passingintentdata.layout2 (has extras) }

请为我提供有关解决此问题的详细帮助,因为我是 Android 新手。

谢谢。

最佳答案

使用com.adhish.passingintentdata.MainActivity作为Action字符串来创建Intent来启动layout2 Activity:

    Intent i = new Intent("com.adhish.passingintentdata.layout2");

并在 Manifast 中为layout2 Activity 添加 Intent 过滤器:

<intent-filter>
        <action android:name="com.adhish.passingintentdata.layout2" /> 
 </intent-filter>

关于java - 未找到处理类文件中 Intent 的 Activity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28786117/

相关文章:

java - Android上为什么不在Activity中调用onActivityResult

java - RabbitMQ RPC 与交换问题

android - 以编程方式在操作栏中的一项下打开列表菜单

android - 如何以编程方式打开 Google Play 商店的 "My account"

java - 通过 Intent 传递数据

android - 如何检查游标是否为空?

java - PHP $_POST 为空或 null

android - 开始一个使用 asynctask 的新 Activity

android - 无法使用 4.2.2 AVD 上的 Intent 选择器从相机获取图像

java - 为什么 httpclient 在 DO droplet 上有不同的行为(与 SSL 相关)?