Sayed Nasri
Sayed Nasri

Reputation: 1

how call activity.java in other one using button listener

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

Answers (1)

MarsAtomic
MarsAtomic

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

Related Questions