Alanagh
Alanagh

Reputation: 234

Switch to different Activities onClick

I am new to Android and exploring it at the moment. I have two Image Buttons which have to load different activities onClick.

ImageButton btn1= (ImageButton)findViewById(R.id.timetable);
btn1.setOnClickListener(btnListener1);

ImageButton btn2= (ImageButton)findViewById(R.id.location);
btn2.setOnClickListener(btnListener2);
private OnClickListener btnListener1 = new OnClickListener()
{
    public void onClick(View view)
    {                        
         Intent myIntent = new Intent(getBaseContext(), HelloWorld1.class);
         startActivity(myIntent);
    }
};

private OnClickListener btnListener2 = new OnClickListener()
{
    public void onClick(View view)
    {                 
        Intent myIntent2 = new Intent(getBaseContext(), HelloWorld2.class);         
        startActivity(myIntent2);
    }
};

//my manifest ......

<activity android:name="myApp" 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=".HelloWorld1"></activity>
<activity android:name=".HelloWorld2"></activity>

//and my main.xml

<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
android:id="@+id/widget34"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:background="#ffffff"
>

<GridView
    android:id="@+id/widget36"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:numColumns="2"
    android:layout_x="110px"

    android:layout_y="32px"
    android:layout_centerInParent="true">
</GridView>
<ImageButton
    android:id="@+id/timetable"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_x="210px"
    android:layout_y="142px"
    android:background="@drawable/icon2">
</ImageButton>
<ImageButton
    android:id="@+id/location"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_x="100px"
    android:layout_y="342px"
    android:background="@drawable/icon">
</ImageButton>

This code causes errors, could anyone point where I am going wrong please. Many thanks in advance.

Upvotes: 0

Views: 2635

Answers (3)

Robert
Robert

Reputation: 1266

Try to write something simillar like code below. You can also define first function which will create new activity when button will be pressed.

public class HelloAndroid extends Activity {
private Button button_1;
private Button button_2;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    initialiyeFields();
}

private void initialiyeFields(){
    button_1 = (Button)findViewById(R.id.button1);
    button_1.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(HelloAndroid.this, HelloWord1.class);
            startActivity(intent);
        }
    });

    button_2 = (Button)findViewById(R.id.button2);
    button_2.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(HelloAndroid.this, HelloWord2.class);
            startActivity(intent);
        }
    });
}

}

Upvotes: 0

ForeverNights
ForeverNights

Reputation: 631

Let's put aside the finish() method since i dont know what the heck it's doing there :) Case1: Look careful at your activity xml view file, you might accidentally define your button as Button instead of ImageButton -> Error

Case2: dont use view.getContext(), instead use getBaseContext() or getApplicationContext()

Upvotes: 1

Ted Hopp
Ted Hopp

Reputation: 234795

You are calling startActivityForResult() and then immediately calling finish(). Where is the result going to go if the activity is finished?

What behavior do you want and what are you getting instead. The more specific you can be, the better the quality of help you will get.

Upvotes: 0

Related Questions