Reputation: 1
I have two class activity that runs perfectly separately (ArduinoBlinkLEDActivity.java and ObjTrackActivity.java) .. I want to merge the two classes in one slass; i want to call the second class in the first one using the onclick activity buttonListener. i think that need to change layouts please i need your help
ArduinoBlinkLEDActivity.java:
public class ArduinoBlinkLEDActivity extends Activity {
// TAG is used to debug in Android logcat console
private static final String TAG = "ArduinoAccessory";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
while (connected) {
startService(new Intent(this, ArduinoBlinkLEDActivity.class));
}
iptext = (EditText) findViewById(R.id.ipserveur);
connexion = (Button) findViewById(R.id.button2);
deconnexion = (Button) findViewById(R.id.button1);
}
ObjTrackActivity.java :
public class ObjTrackActivity extends Activity {
private static final String TAG = "ObjTrackActivity";
public ObjTrackActivity() {
Log.i(TAG, "Instantiated new " + this.getClass());
}
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
Log.i(TAG, "onCreate");
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(new ObjTrackView(this));
}
ObjTrackView.java:
class ObjTrackView extends SampleViewBase {
private int mFrameSize;
private Bitmap mBitmap;
private int[] mRGBA;
public ObjTrackView(Context context) {
super(context);
}
my test that doesn't work: ArduinoBlinkLEDActivity.java:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
iptext = (EditText) findViewById(R.id.ipserveur);
connexion = (Button) findViewById(R.id.button2);
deconnexion = (Button) findViewById(R.id.button1);
Button btnNextScreen = (Button) findViewById(R.id.btnNextScreen);
//Listening to button event
btnNextScreen.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
//Starting a new Intent
Log.i(TAG, "onCreate");
//super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(new ObjTrackView(this));
}
});
Upvotes: 0
Views: 633
Reputation: 10673
You need to turn ObjTrackView into an activity with an accompanying XML layout and launch it via Intent.
Sample Code:
////////////////////////////////////////////////////////////////////////////////
//
// IntentDemo
//
// Demonstration of the use of basic intent.
//
// Clicking on the 'Launch Intent' button in ActivityA launches a known
// activity, ActivityB.
//
////////////////////////////////////////////////////////////////////////////////
package com.marsatomic.intentdemo;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
public class ActivityA extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_a);
Button buttonLaunchActivityB = (Button)findViewById(R.id.button_launch_activity_b);
buttonLaunchActivityB.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
Intent i = new Intent(ActivityA.this, ActivityB.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.activity, menu);
return true;
}
}
Just so you know, setContentView takes a reference to an xml layout file as an argument, not an Activity or some other arbitrary Java class.
Upvotes: 1