0

here goes my mainactivity.java

public class MainActivity extends Activity {
Button iol;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    iol=(Button)findViewById(R.id.iolCalculation);
    try{
        iol.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                Intent iolIntent=new Intent(MainActivity.this,Selection.class);
                startActivity(iolIntent);
            }
        });
    }finally{

    }

}

here is my main xml wherein the button with id=button1 is to be clicked

    <FrameLayout 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="@color/black"
    tools:context=".FullscreenActivity" 
    android:id="@+id/frame_layout">

        <LinearLayout
            android:id="@+id/fullscreen_content_controls"
            style="@style/ButtonBar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom|center_horizontal"
            android:background="@color/black_overlay"
            android:orientation="horizontal"
            tools:ignore="UselessParent" >
        </LinearLayout>

        <Button
            style="@style/ButtonBarButton"
            android:layout_width="222dp"
            android:layout_height="62dp"
            android:layout_marginLeft="45dp"
            android:layout_marginTop="75dp"
            android:background="@color/black"
            android:paddingLeft="20dp"
            android:id="@+id/iolCalculation"
            android:text="@string/Button"
            android:textColor="@color/WhiteSmoke"
            android:textStyle="bold" />

        <Button
            style="@style/ButtonBarButton"
            android:layout_width="222dp"
            android:layout_height="62dp"
            android:layout_marginLeft="45dp"
            android:id="@+id/sHelp"
            android:layout_marginTop="139dp"
            android:background="@color/Black"
            android:gravity="center"
            android:paddingLeft="10dp"
            android:text="@string/Button1"
            android:textColor="@color/WhiteSmoke"
            android:textStyle="bold" />

        <Button
            style="@style/ButtonBarButton"
            android:layout_width="222dp"
            android:layout_height="62dp"
            android:id="@+id/sAbout"
            android:layout_marginLeft="45dp"
            android:layout_marginTop="203dp"
            android:background="@color/Black"
            android:paddingLeft="10dp"
            android:text="@string/Button2"
            android:textColor="@color/WhiteSmoke"
            android:textStyle="bold" >

        </Button>
</FrameLayout>

here goes my 2nd xml layout which is to be diplayed along with the contents of it when button1 is clicked

   <?xml version="1.0" encoding="utf-8"?>
   <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/black"
    android:orientation="vertical" 
    android:id="@+id/form_layout">

    <Spinner
        android:id="@+id/formulae"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="50dp"
        android:layout_marginRight="50dp"
        android:background="@color/LightSkyBlue"
        android:prompt="@string/prompt"
        android:entries="@array/formulas" />

    <TextView
        android:id="@+id/k2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/k1"
        android:layout_below="@+id/k1"
        android:layout_marginTop="38dp"
        android:text="@string/K2"
        android:textColor="@color/White"
        android:textSize="25sp" />

    <TextView
        android:id="@+id/al_const"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/al"
        android:layout_below="@+id/al"
        android:layout_marginTop="44dp"
        android:text="@string/Rx"
        android:textColor="@color/White"
        android:textSize="20sp" />

    <TextView
        android:id="@+id/al"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/k2"
        android:layout_below="@+id/k2"
        android:layout_marginTop="38dp"
        android:text="@string/AL"
        android:textColor="@color/White"
        android:textSize="25sp" />

    <EditText
        android:id="@+id/k2_editText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/al"
        android:layout_alignRight="@+id/al_editText"
        android:layout_alignTop="@+id/k2"
        android:layout_marginLeft="120dp"
        android:background="@color/black"
        android:ems="10"
        android:inputType="numberDecimal"
        android:textColorLink="@color/white" />

    <EditText
        android:id="@+id/al_editText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/formulae"
        android:layout_alignTop="@+id/al"
        android:layout_marginLeft="120dp"
        android:ems="10"
        android:inputType="numberDecimal" />

    <EditText
        android:id="@+id/al_const_editText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/al_const"
        android:layout_alignRight="@+id/al_editText"
        android:layout_marginLeft="120dp"
        android:ems="10"
        android:inputType="numberDecimal" />

    <Button
        android:id="@+id/result"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:background="@color/LightSkyBlue"
        android:text="@string/Result" />

    <EditText
        android:id="@+id/k1_editText"
        android:layout_width="wrap_content"
        android:layout_height="37dp"
        android:layout_alignLeft="@+id/k2_editText"
        android:layout_alignRight="@+id/formulae"
        android:layout_below="@+id/formulae"
        android:layout_marginTop="30dp"
        android:background="@color/black"
        android:ems="10"
        android:inputType="numberDecimal"
        android:textColorLink="@color/White" />

    <TextView
        android:id="@+id/k1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/k1_editText"
        android:layout_alignParentLeft="true"
        android:layout_marginLeft="27dp"
        android:text="@string/K1"
        android:textColor="@color/white"
        android:textSize="25sp" />

</RelativeLayout>

manifest file

    <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.iolcalci"
    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="com.example.iolcalci.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="Selection"
            android:exported="false"
            android:configChanges="orientation|keyboardHidden|screenSize"
            android:label="@string/app_name">
                <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.DEFAULT" />
          </intent-filter>
        </activity>
    </application>

</manifest>

logcat for using setcontentview in selection class

    12-24 08:13:52.456: E/AndroidRuntime(766): FATAL EXCEPTION: main
12-24 08:13:52.456: E/AndroidRuntime(766): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.iolcalci/com.example.iolcalci.Selection}: android.content.res.Resources$NotFoundException: Resource ID #0x7f090005 type #0x12 is not valid
12-24 08:13:52.456: E/AndroidRuntime(766):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
12-24 08:13:52.456: E/AndroidRuntime(766):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
12-24 08:13:52.456: E/AndroidRuntime(766):  at android.app.ActivityThread.access$600(ActivityThread.java:141)
12-24 08:13:52.456: E/AndroidRuntime(766):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
12-24 08:13:52.456: E/AndroidRuntime(766):  at android.os.Handler.dispatchMessage(Handler.java:99)
12-24 08:13:52.456: E/AndroidRuntime(766):  at android.os.Looper.loop(Looper.java:137)
12-24 08:13:52.456: E/AndroidRuntime(766):  at android.app.ActivityThread.main(ActivityThread.java:5039)
12-24 08:13:52.456: E/AndroidRuntime(766):  at java.lang.reflect.Method.invokeNative(Native Method)
12-24 08:13:52.456: E/AndroidRuntime(766):  at java.lang.reflect.Method.invoke(Method.java:511)
12-24 08:13:52.456: E/AndroidRuntime(766):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
12-24 08:13:52.456: E/AndroidRuntime(766):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
12-24 08:13:52.456: E/AndroidRuntime(766):  at dalvik.system.NativeStart.main(Native Method)
12-24 08:13:52.456: E/AndroidRuntime(766): Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f090005 type #0x12 is not valid
12-24 08:13:52.456: E/AndroidRuntime(766):  at android.content.res.Resources.loadXmlResourceParser(Resources.java:2144)
12-24 08:13:52.456: E/AndroidRuntime(766):  at android.content.res.Resources.getLayout(Resources.java:853)
12-24 08:13:52.456: E/AndroidRuntime(766):  at android.view.LayoutInflater.inflate(LayoutInflater.java:394)
12-24 08:13:52.456: E/AndroidRuntime(766):  at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
12-24 08:13:52.456: E/AndroidRuntime(766):  at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:270)
12-24 08:13:52.456: E/AndroidRuntime(766):  at android.app.Activity.setContentView(Activity.java:1881)
12-24 08:13:52.456: E/AndroidRuntime(766):  at com.example.iolcalci.Selection.onCreate(Selection.java:12)
12-24 08:13:52.456: E/AndroidRuntime(766):  at android.app.Activity.performCreate(Activity.java:5104)
12-24 08:13:52.456: E/AndroidRuntime(766):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
12-24 08:13:52.456: E/AndroidRuntime(766):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
12-24 08:13:52.456: E/AndroidRuntime(766):  ... 11 more

I can see a blank layout displayed after executing the above code. How am I supposed to display the spinners,textview,editbox etc from 2nd xml after clicking button1.

Nicolas Henneaux
  • 11,507
  • 11
  • 57
  • 82
human
  • 637
  • 4
  • 15
  • 41
  • create Selection class through manifest file and add your second xml file to your setContentView() of Selection class. – User Dec 24 '12 at 10:08
  • @Madhavi i have updated my manifest and also tried setContentview in selection but did not work. i have updated logcat for that condition also – human Dec 24 '12 at 10:13
  • check your button id its wrong....... id you metioned in java file is not found in xml file – KMI Dec 24 '12 at 10:16
  • this line is wrong iol=(Button)findViewById(R.id.iolCalculation); check your button id – User Dec 24 '12 at 10:18
  • that is corrected. but result is same. check the logcat as i am not able to understand it. – human Dec 24 '12 at 10:20
  • post your selection.java – KMI Dec 24 '12 at 10:27

4 Answers4

1
in androidmainfest.xml just write <activity
            android:name="Selection"></activity>
instead of
 <activity
            android:name="Selection"
            android:exported="false"
            android:configChanges="orientation|keyboardHidden|screenSize"
            android:label="@string/app_name">
                <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.DEFAULT" />
          </intent-filter>
        </activity>
Meghna
  • 539
  • 4
  • 14
0

If you are trying to move to another screen with new view and XML you need to refer create a new Java class extending Activity class. Which will have setContentView() method which will take param as R.layout.somexml which will be placed inside your layout directory in res. to know more read from the below links.

  1. Android Document

  2. Example

Community
  • 1
  • 1
Lalith B
  • 11,843
  • 6
  • 29
  • 47
  • but as of now where i am supposed to implement the above said activity there is no nextclass. – human Dec 24 '12 at 10:17
  • when i use setcontenview in the new class i have got error as shown in above logcat – human Dec 24 '12 at 10:19
  • it says resource not found. In onCreate() Method provide the xml file which you added in resource. Also the Selection class need to be a Activity. so it will be class Selection extends Activity and in public void onCreate(Bundle SavedInstance){setContentView(R.layout.somexml);} – Lalith B Dec 24 '12 at 10:24
  • also you have 2 main Intents in your Manifest remove the IntentFilter tag in your manifest for the Selection activity. – Lalith B Dec 24 '12 at 10:25
0

You are trying to create small application with two different screens

here is simple tutorial to Achieve this

so you need..

Two activities in your project

  1. MainActivity.java
  2. Selection.java

Two layouts files

  1. activity_main.xml
  2. activity_second.xml

see your Selection.java (Activity) file should be like this, to handle the spinner

public class Selection extends Activity implements OnItemSelectedListener {

    private Spinner spinner = null;

    // to show the list in spinner we need to create a list of items
    private String[] androidBooks = { "Hello, Android", "Professional Android",
            "Unlocking Android", "Android App Development", "Pro Android",
            "Beginning Android ", "Android Programming Tutorials",
            "Android Wireless App Development", "Pro Android Games", };

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

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_spinner_item, androidBooks);

        // get the spinner id what we decleared in xml layout file
        // (activity_second.xml)
        spinner = (Spinner) findViewById(R.id.formulae);

        spinner.setAdapter(adapter);
        spinner.setOnItemSelectedListener(this);

           //.... same way you can get id of button etc. and work on them

    }

    // implement the item selected listener for spinner
    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position,
            long id) {
        int item = spinner.getSelectedItemPosition();
        Toast.makeText(getBaseContext(),
                "You have selected the book: " + androidBooks[item],
                Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onNothingSelected(AdapterView<?> arg0) {
        // TODO Auto-generated method stub

    }

}

and PL make entries for both activities in manifest file's application tag this way

AndroidManifest.xml

<application
        android:icon="@drawable/icon"
        android:label="@string/app_name">
        <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=".Selection"
            android:label="@string/app_name">
            <intent-filter>             
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>

Let me clear if you have any trouble!! happy to help

swiftBoy
  • 35,607
  • 26
  • 136
  • 135
  • how am i supposed to display spinner and its elements.i am a beginner – human Dec 24 '12 at 10:29
  • You have one Spinner in xml file, so you need to get the id of It, in the related activity file (as you already did it for the Button in main activity). let me do this i'll update answer asap. – swiftBoy Dec 24 '12 at 10:33
  • PL check updated answer i have added Selection.java file code snip to handle spinner, its working fine with me, Well.. pleasure to here that it helps you :) – swiftBoy Dec 24 '12 at 11:05
0

This error has occurred because you forgot to register your Selection class in your manifest file. Registry it in there and I'm sure your application will work.

Rohit
  • 490
  • 3
  • 15