2014-09-22 40 views
1

(其中按钮是我想要单击并移动到DrinksActivity)Android的运行时错误使用按钮时更改活动MainActivity.java

public void calculate(View view){ 
    startActivity(new Intent(MainActivity.this, DrinksActivity.class)); 
} 

按钮XML为MainActivity:

<Button 
    android:id="@+id/genderbutton" 
    android:layout_width="100dp" 
    android:layout_height="50dp" 
    android:layout_below="@+id/radioGroup1" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="77dp" 
    android:onClick="calculate" 
    android:text="@string/next2" 
    android:textColor="#FFFFFF" /> 

DrinksActivity清单中:

<activity 
    android:name="com.example.bac.DrinksActivity" 
    android:label="@string/title_activity_drinks" > 
</activity> 

的DrinksActivity.java目前仅仅是基本的。没有变化。

该应用程序将运行得很好,但是当我点击按钮时,我得到一个运行时错误,停止应用程序,不会转移到DrinksActivity。

logcat的文件:

09-22 02:16:32.677: E/AndroidRuntime(615): FATAL EXCEPTION: main 
09-22 02:16:32.677: E/AndroidRuntime(615): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.bac/com.example.bac.DrinksActivity}: java.lang.IllegalArgumentException: No view found for id 0x7f05003c (com.example.bac:id/container) for fragment PlaceholderFragment{4190fdc0 #0 id=0x7f05003c} 
09-22 02:16:32.677: E/AndroidRuntime(615): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059) 
09-22 02:16:32.677: E/AndroidRuntime(615): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 
09-22 02:16:32.677: E/AndroidRuntime(615): at android.app.ActivityThread.access$600(ActivityThread.java:130) 
09-22 02:16:32.677: E/AndroidRuntime(615): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 
09-22 02:16:32.677: E/AndroidRuntime(615): at android.os.Handler.dispatchMessage(Handler.java:99) 
09-22 02:16:32.677: E/AndroidRuntime(615): at android.os.Looper.loop(Looper.java:137) 
09-22 02:16:32.677: E/AndroidRuntime(615): at android.app.ActivityThread.main(ActivityThread.java:4745) 
09-22 02:16:32.677: E/AndroidRuntime(615): at java.lang.reflect.Method.invokeNative(Native Method) 
09-22 02:16:32.677: E/AndroidRuntime(615): at java.lang.reflect.Method.invoke(Method.java:511) 
09-22 02:16:32.677: E/AndroidRuntime(615): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
09-22 02:16:32.677: E/AndroidRuntime(615): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
09-22 02:16:32.677: E/AndroidRuntime(615): at dalvik.system.NativeStart.main(Native Method) 
09-22 02:16:32.677: E/AndroidRuntime(615): Caused by: java.lang.IllegalArgumentException: No view found for id 0x7f05003c (com.example.bac:id/container) for fragment PlaceholderFragment{4190fdc0 #0 id=0x7f05003c} 
09-22 02:16:32.677: E/AndroidRuntime(615): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:930) 
09-22 02:16:32.677: E/AndroidRuntime(615): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1115) 
09-22 02:16:32.677: E/AndroidRuntime(615): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682) 
09-22 02:16:32.677: E/AndroidRuntime(615): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1478) 
09-22 02:16:32.677: E/AndroidRuntime(615): at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:570) 
09-22 02:16:32.677: E/AndroidRuntime(615): at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1163) 
09-22 02:16:32.677: E/AndroidRuntime(615): at android.app.Activity.performStart(Activity.java:5018) 
09-22 02:16:32.677: E/AndroidRuntime(615): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2032) 
09-22 02:16:32.677: E/AndroidRuntime(615): ... 11 more 
09-22 02:16:34.947: I/Process(615): Sending signal. PID: 615 SIG: 9 

我也有一个问题要问,你也许能够帮助我(不涉及这个问题),你怎么让它这样应用程序可以只是向下滚动触摸并有更长的活动?

DrinksActivity类:

public static class PlaceholderFragment extends Fragment { 

    public PlaceholderFragment() { 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.fragment_main, container, 
       false); 
     return rootView; 
    } 
} 

drinks.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:background="@drawable/bg" 
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.bac.DrinksActivity$PlaceholderFragment" > 


    <TextView 
     android:id="@+id/hmd" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:text="@string/hmd" 
     android:textColor="#FFFFFF" 
     android:textSize="25sp" /> 

    <TextView 
     android:id="@+id/dyh" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/hmd" 
     android:layout_centerHorizontal="true" 
     android:text="@string/dyh" 
     android:textColor="#FFFFFF" 
     android:textSize="25sp" /> 

    <TextView 
     android:id="@+id/shot" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/wine" 
     android:layout_below="@+id/wine" 
     android:layout_marginTop="41dp" 
     android:text="@string/shots" 
     android:textColor="#FFFFFF" 
     android:textSize="20sp" /> 

    <TextView 
     android:id="@+id/wine" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/beer" 
     android:layout_below="@+id/beer" 
     android:layout_marginTop="45dp" 
     android:text="@string/wine" 
     android:textColor="#FFFFFF" 
     android:textSize="20sp" /> 

    <EditText 
     android:id="@+id/shotinput" 
     android:layout_width="75dp" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/shot" 
     android:layout_alignBottom="@+id/shot" 
     android:layout_alignLeft="@+id/wineinput" 
     android:ems="10" 
     android:hint="#" 
     android:inputType="number" 
     android:textColor="#FFFFFF" 
     android:textColorLink="#FFFFFF" 
     android:textSize="15sp" /> 

    <Button 
     android:id="@+id/drinksbutton" 
     android:layout_width="100dp" 
     android:layout_height="50dp" 
     android:layout_alignParentBottom="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginBottom="62dp" 
     android:onClick="next" 
     android:text="@string/next1" 
     android:textColor="#FFFFFF" /> 

    <TextView 
     android:id="@+id/beer" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/hmd" 
     android:layout_below="@+id/dyh" 
     android:layout_marginTop="64dp" 
     android:text="@string/beer" 
     android:textColor="#FFFFFF" 
     android:textSize="20sp" /> 

    <EditText 
     android:id="@+id/beerinput" 
     android:layout_width="75dp" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/beer" 
     android:layout_alignBottom="@+id/beer" 
     android:layout_toRightOf="@+id/shot" 
     android:ems="10" 
     android:hint="#" 
     android:inputType="number" 
     android:textColor="#FFFFFF" 
     android:textColorLink="#FFFFFF" 
     android:textSize="15sp" /> 

    <EditText 
     android:id="@+id/wineinput" 
     android:layout_width="75dp" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/wine" 
     android:layout_alignBottom="@+id/wine" 
     android:layout_alignLeft="@+id/beerinput" 
     android:ems="10" 
     android:hint="#" 
     android:inputType="number" 
     android:textColor="#FFFFFF" 
     android:textColorLink="#FFFFFF" 
     android:textSize="15sp" /> 

</RelativeLayout> 
+0

您可以发布的情况下'DrinksActivity' – Blackbelt 2014-09-22 07:37:57

+0

可以粘贴在这里占位符片段 – Supriya 2014-09-22 07:38:04

+0

后DrinksActivity和视图 – 2014-09-22 07:38:28

回答

1

您的问题,从现在起,当两条线

在主要活动

package com.example.bac; 

import android.support.v7.app.ActionBarActivity; 
import android.support.v7.app.ActionBar; 
import android.support.v4.app.Fragment; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.view.ViewGroup; 
import android.os.Build; 

public class DrinksActivity extends ActionBarActivity { 

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

    if (savedInstanceState == null) { 
     getSupportFragmentManager().beginTransaction() 
       .add(R.id.container, new PlaceholderFragment()).commit(); 
    } 
} 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 

    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.drinks, 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); 
} 

/** 
* A placeholder fragment containing a simple view. 
*/ 
public static class PlaceholderFragment extends Fragment { 

    public PlaceholderFragment() { 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.drinks, container, false); 
     return rootView; 
    } 
} 

} 

占位符片段0

每个片段都需要一个“容器”,活动使用它来承载片段本身。该容器通常是由框架(FrameLayout即,)提供的ViewGroup的实现之一。你的代码的意思是,你已经宣布与ID R.id.container一景,里面R.layout.drinks,其中,给出的例外,是不是

+0

将'R.id.container'声明为'R.layout。饮料“或摆脱这两条线(如果你不使用片段,或者你不想) – Blackbelt 2014-09-22 07:58:57

+0

哇,你真的很好先生......你值得所有代表在这个网站上的代表。感谢您清除那种大量头痛。 (我只有一个星期的Android编程,在此之前我学过java编程,C++和Mips) – bobshishka 2014-09-22 08:07:18

相关问题