我尝试使用按钮从一个屏幕移动到另一个屏幕,我可以从主屏幕移动到辅助屏幕,但是当尝试从第二个屏幕返回时,我收到一条错误消息“不幸的是,应用程序已停止”。
注意:我将有第三个布局/Activity ,因此我会将解决方案复制到第三个选项。
我是android新手,想知道你是否可以提供更好的方法来完成我正在做的事情( Activity 在 list 中声明,实际上当使用第二个屏幕作为主屏幕时,它可以很好地转到第一个屏幕(作为第二个选项)但是当尝试返回第二个屏幕时,它再次给了我错误),提前谢谢!!:
package com.example.citas.medicas;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
public class Citas_Medicas extends Activity {
private Button btnIraRegistrarPaciente;
private Button btnIraRegistrarDoctor;
private Button btnIraRegistrarCita;
private Button btnIraReportePacientes;
private Button btnIraReporteHistorialCitas;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_citas__medicas);
btnIraRegistrarPaciente = (Button)findViewById(R.id.btnIraRegistrarPaciente);
btnIraRegistrarDoctor = (Button)findViewById(R.id.btnIraRegistrarDoctor);
btnIraRegistrarCita = (Button)findViewById(R.id.btnIraRegistrarCita);
btnIraReportePacientes = (Button)findViewById(R.id.btnIraReportePacientes);
btnIraReporteHistorialCitas = (Button)findViewById(R.id.btnIraReporteHistorialCitas);
}
public void onStart()
{
super.onStart();
btnIraRegistrarPaciente.setOnClickListener(new OnClickListener()
{
public void onClick(View component)
{
setContentView(R.layout.registrarpaciente);
}
}
);
}
}
这里是辅助java(不确定onStart是否可以):
package com.example.citas.medicas;
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;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
public class Registrar_Paciente extends Activity implements OnClickListener {
private Button btnRegistrarPaciente;
private Button btnVolverMenuPrincipal1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.registrarpaciente);
btnRegistrarPaciente = (Button)findViewById(R.id.btnRegistrarPaciente);
btnVolverMenuPrincipal1 = (Button)findViewById(R.id.btnVolverMenuPrincipal1);
btnRegistrarPaciente.setOnClickListener(this);
btnVolverMenuPrincipal1.setOnClickListener(this);
}
public void onStart()
{
super.onStart();
btnRegistrarPaciente.setOnClickListener(
new OnClickListener()
{
public void onClick(View component)
{
setContentView(R.layout.registrarpaciente);
}
}
);
btnVolverMenuPrincipal1.setOnClickListener(
new OnClickListener()
{
public void onClick(View component)
{
setContentView(R.layout.activity_citas__medicas);
//Intent intent = new Intent(Registrar_Paciente.this, Citas_Medicas.class);
//startActivity(intent);
}
}
);
}
}
最佳答案
我认为,与其将 onClickHandlers 放在 onStart()
中,不如将它们放在 onCreate()
本身中会更好。我的意思是,这是传统的做法。
由于您正在使用不同的 Activity ,仅更改 setContentView()
是不够的。我也可能是错的,但在 Activity 之间切换的标准方法是通过 Intents.
类似这样的事情:
btnIraRegistrarPaciente.setOnClickListener(new OnClickListener()
{
public void onClick(View component)
{
Intent intent = new Intent(context, Registrar_Paciente.class);
startActivity(intent);
}
}
);
关于android - 使用按钮在布局/Activity 之间切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12527524/