只有三个按钮中的一个工作

时间:2012-08-29 00:03:27

标签: android android-button

嘿我试图让不同的按钮在Android项目中打开不同的页面,但只有按钮才能打开一个新的页面。

我是编程的新手,所以我的术语可能不正确,但我正在关注一个youtube教程,它展示了如何创建一个按钮并让它打开一个新页面。我尝试为多个按钮执行此操作,但我认为我在主要活动中犯了错误。很抱歉,如果我没有提供写信息来帮助我解决问题。

package test.activity.today;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle; 
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class ActivityTutorialActivity extends Activity {
/** Called when the activity is first created. */

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Button next = (Button) findViewById(R.id.next_button);
    next.setOnClickListener(new OnClickListener(){

        public void onClick (View v){
            Intent myIntent = new Intent(v.getContext(), NextActivity.class);
            v.getContext().startActivity(myIntent);

        }               
    });
}

public void onCreate1(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Button next = (Button) findViewById(R.id.question_button);
    next.setOnClickListener(new OnClickListener(){

        public void onClick (View v){
            Intent myIntent = new Intent(v.getContext(), Question.class);
            v.getContext().startActivity(myIntent);

        }               
    });
}


public void onCreate2(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Button next = (Button) findViewById(R.id.owner_cost);
    next.setOnClickListener(new OnClickListener(){

        public void onClick (View v){
            Intent myIntent = new Intent(v.getContext(), Owner.class);
            v.getContext().startActivity(myIntent);
        }
    });
    }
}

3 个答案:

答案 0 :(得分:1)

你应该只有一个onCreate()方法..检查android activity's life cycle以理解它

package test.activity.today;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle; 
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class ActivityTutorialActivity extends Activity {
/** Called when the activity is first created. */

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

Button next = (Button) findViewById(R.id.next_button);
next.setOnClickListener(new OnClickListener(){

    public void onClick (View v){
        Intent myIntent = new Intent(v.getContext(), NextActivity.class);
        v.getContext().startActivity(myIntent);

    }               
});
Button question = (Button) findViewById(R.id.question_button);
question.setOnClickListener(new OnClickListener(){

    public void onClick (View v){
        Intent myIntent = new Intent(v.getContext(), Question.class);
        v.getContext().startActivity(myIntent);

    }               
});
Button ownerCost = (Button) findViewById(R.id.owner_cost);
ownerCost.setOnClickListener(new OnClickListener(){

    public void onClick (View v){
        Intent myIntent = new Intent(v.getContext(), Owner.class);
        v.getContext().startActivity(myIntent);
    }
});
}

}

答案 1 :(得分:0)

您正在复制onCreate()方法...此方法由Android本地调用,因此,您的其他方法都不会被调用(如果有的话,您还会遇到其他问题)。要创建多个按钮,您需要在布局中添加新按钮,然后将其添加到onCreate()

答案 2 :(得分:0)

还有另一种实现onClick的方法。

在布局中,您可以指定调用onClick

的功能
<ImageButton
    android:id="@+id/imageButtonNext1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:background="@color/back_color"
    android:onClick="RegistraterCompanyOnClick"
    android:src="@drawable/ic_next" />

然后在您的活动中,您可以按其ID过滤哪个按钮。见下文。

public void RegistraterCompanyOnClick(View v){

    switch(v.getId()){
    case R.id.imageButtonNext1:
        String cname = company.getText().toString();

        if (cname.length()== 0){

            message = getString(R.string.company_required);

            ShowDialog(message);

        }
        else{
            company_name =  company.getText().toString();

            VerifyClient(company_name);
        }

        break;
    case R.id.imageButtonInfo1:
        //message = getString(R.string.registration_info);

        message = "Device ID:\n" + deviceID;

        // TODO Auto-generated method stub
        ShowDialog(message);

        break;
    case R.id.imageButtonHelp1:

        message = getString(R.string.registration_contact);

        // TODO Auto-generated method stub

        ShowDialog(message);
        break;

    case R.id.imageButtonPrevious1:
        Intent resultIntent = new Intent();

        // TODO Auto-generated method stub

        resultIntent.putExtra("company_name",               company.getText().toString());
        resultIntent.putExtra("company_id", companyID);
        resultIntent.putExtra("location_name", location_name);
        resultIntent.putExtra("location_id", locationID);

        setResult(Activity.RESULT_CANCELED, resultIntent);

        finish();
    default:
        break;
    }


}