Reputation: 77
I have made an app with a bunch of buttons in it, but only the first and second one of them works.What shall I do?
here's my code:
package com.metoo.codedetective;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button ceo = (Button) findViewById(R.id.codebutton);
ceo.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
startActivity(new Intent(MainActivity.this, Etelaateomoomi.class));
Button fr = (Button) findViewById(R.id.button2);
fr.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
startActivity(new Intent(MainActivity.this, Factoryreset.class));
Button pe = (Button) findViewById(R.id.button5);
pe.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
startActivity(new Intent(MainActivity.this, Endcallpower.class));
//button camera information
Button ci= (Button) findViewById(R.id.button4);
ci.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
startActivity(new Intent(MainActivity.this, Camerainformation.class));
//backup button
Button bt= (Button) findViewById(R.id.button6);
bt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
startActivity(new Intent(MainActivity.this, backuptaking.class));
//testing button
Button tb = (Button) findViewById(R.id.button7);
tb.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
startActivity(new Intent(MainActivity.this, Testing.class));
//sakht afzari button
Button sa=(Button) findViewById(R.id.button9);
sa.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
startActivity(new Intent(MainActivity.this, Sakhtafzari.class));
//imei
Button imei = (Button) findViewById(R.id.button10);
imei.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
startActivity(new Intent(MainActivity.this, Imei.class));
}
});
}
});
}
});
}
});
}
});
}
});
}
});
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
I have added all of the classes to the manifest but I get nothing. Why?
Upvotes: 0
Views: 110
Reputation: 11988
You put inside the first onClickListener
all your stuff, you should not do this. Try this:
Button fr = (Button) findViewById(R.id.button2);
fr.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
startActivity(new Intent(MainActivity.this, Factoryreset.class));
}
}
// end onClickListener
// second button
Button pe = (Button) findViewById(R.id.button5);
pe.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
startActivity(new Intent(MainActivity.this, Endcallpower.class));
}
}
// end second onclicklistener
// etc.
From your code, your have multiple views with onClickListener
method. Maybe you should do this it's better to handle onclick events from several views:
// implement an onClickListener method
public class MainActivity extends Activity implements OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// find ids (for all your views)
Button ceo = (Button) findViewById(R.id.codebutton);
Button fr = (Button) findViewById(R.id.button2);
Button pe = (Button) findViewById(R.id.button5);
// etc.
// then set the implementation (for all your views)
ceo.setOnClickListener(this);
fr.setOnClickListener(this);
pe.setOnClickListener(this);
// etc.
}
// call onClick method
@Override
public void onClick(View v) {
// receive the button clicked by its id
switch(v.getId()) {
// select the id
case R.id.codebutton:
// do some stuff
break;
case R.id.button2:
// do some stuff
break;
case R.id.button5:
// do some stuff
break;
// etc.
}
}
}
Upvotes: 1