Reputation: 234
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
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
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
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