单击按钮后,第二个活动无法打开

时间:2014-12-07 19:14:18

标签: java android debugging button manifest

我在发布这个问题之前一直在搜索这个问题,但仍然无法得到任何帮助,请帮助我解决这个问题,当我按下按钮时会出现一个黑色页面,然后应用程序关闭说不是回应,我是一个新手在这里,任何形式的帮助将不胜感激。

activity_main

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.firstapp.MainActivity" >

<EditText
    android:id="@+id/editText1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/imageView1"
    android:layout_alignParentBottom="true"
    android:layout_marginBottom="26dp"
    android:ems="10"
    android:inputType="numberPassword" />

<EditText
    android:id="@+id/editText5"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/editText1"
    android:layout_alignLeft="@+id/editText1"
    android:ems="10"
    android:inputType="textMultiLine"
    android:text="Enter your Password"
    tools:ignore="HardcodedText" />

<EditText
    android:id="@+id/editText3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/editText5"
    android:layout_alignLeft="@+id/editText5"
    android:layout_marginBottom="20dp"
    android:ems="10"
    android:inputType="textEmailAddress" >

    <requestFocus android:layout_width="wrap_content" />

</EditText>

<EditText
    android:id="@+id/editText4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/editText3"
    android:layout_alignLeft="@+id/editText3"
    android:ems="10"
    android:inputType="textMultiLine"
    android:text="Enter your E-mail id"
    tools:ignore="HardcodedText" />

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/editText4"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="36dp"
    android:src="@drawable/robo" 
    android:contentDescription="@null"/>

<EditText
    android:id="@+id/editText2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="38dp"
    android:ems="10"
    android:inputType="textMultiLine"
    android:text="Welcome To Foodparkk"
    tools:ignore="HardcodedText" />

<Button
    android:id="@+id/button_id"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:text="Login" />

 </RelativeLayout>

MainActivity.java

 package com.example.firstapp;

 import com.example.firstapp.R;
 import android.app.Activity;
 import android.content.Intent;
 import android.os.Bundle;
 import android.view.Menu;
 import android.view.MenuItem;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    final Button button = (Button) findViewById(R.id.button_id);
    button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            Intent i = new Intent(getApplicationContext(),Second.class);
            startActivity(i);
        }
    });
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();
    if (id == R.id.action_settings) {
        return true;
    }
    return super.onOptionsItemSelected(item);
  }
 }

Second.java

   package com.example.firstapp;

   import android.support.v7.app.ActionBarActivity;
    import android.os.Bundle;
  import android.view.Menu;
  import android.view.MenuItem;

  public class Second extends ActionBarActivity {

   @Override
        protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_second);
    }

    @Override
   public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.second, menu);
    return true;
    }

    @Override
   public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();
    if (id == R.id.action_settings) {
        return true;
    }
    return super.onOptionsItemSelected(item);
  }
 }

Activity_Second.xml

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.firstapp.Second" >

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/hello_world" />
  </RelativeLayout>

清单代码

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

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

<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/title_activity_main" >
        <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" >
      </activity>
     </application>

     </manifest>

2 个答案:

答案 0 :(得分:1)

 public class MainActivity extends ActionBarActivity { //mainactivity class

 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 Button button = (Button) findViewById(R.id.button_id);
 button.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        Intent i = new Intent(MainActivity.this,Second.class);
        startActivity(i);
      }
   });
 }

然后你的清单

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/Theme.Base.AppCompat.Light.DarkActionBar" > // i changed this
<activity
    android:name=".MainActivity"
    android:label="@string/title_activity_main" >
    <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" >
  </activity>
 </application>

如果你扩展actionbarActivity,它的xml应该使用它的样式,我不会故事这个,所以我会在我的编辑中重新编写它。只是说你的第二个活动没有设置样式,所以它使用你的应用程序中设置的活动的设备默认主题,所以复制粘贴我的相应代码到你的

答案 1 :(得分:-2)

它被称为Android无响应的ANR简称。您的应用在主线程中进行了大量处理。考虑使用后台线程或AsyncTask以及ProgressDialog,以便主线程不受处理部分的影响。

Read more关于文档中的内容。有关详细信息,请参阅this post