大家好, 我是android新手,我有一个疑问。 我的应用程序中有两个活动。 当我使用按钮进入第二个活动并在第二个按下按钮 按钮不起作用的活动。
第一项活动(主要活动)
public class dashBoard extends AppCompatActivity {
private Button btnEmiCalculatorVar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dash_board);
btnEmiCalculatorVar = (Button) findViewById(R.id.btnEmiCalculator);
btnEmiCalculatorVar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setContentView(R.layout.activity_calc_emi);
}
});
}
}
添加第二个活动只是因为它说的是MOSTLY CODE。
public class calcEmi extends AppCompatActivity {
private Button btnCalculateVar;
TextView editText4;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_calc_emi);
editText4 = (TextView) findViewById(R.id.txtEmiResult);
btnCalculateVar = (Button) findViewById(R.id.btnCalculate);
btnCalculateVar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
editText4.setText("Button is Clicked");//this part not working
}
});
}
}
主要活动XML文件
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.rathod.nitin.emicalc.dashBoard">
<Button
android:id="@+id/btnEmiCalculator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="EMI CALCULATOR"
tools:layout_constraintTop_creator="1"
tools:layout_constraintRight_creator="1"
android:layout_marginEnd="110dp"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginTop="83dp"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
tools:layout_constraintTop_creator="1"
android:layout_marginStart="9dp"
android:layout_marginTop="42dp"
app:layout_constraintTop_toBottomOf="@+id/btnEmiCalculator"
tools:layout_constraintLeft_creator="1"
app:layout_constraintLeft_toLeftOf="@+id/btnEmiCalculator" />
</android.support.constraint.ConstraintLayout>
第二个活动XML
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.rathod.nitin.emicalc.calcEmi">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="EMI CALCULATOR"
android:textSize="20sp"
tools:layout_constraintTop_creator="1"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
tools:layout_constraintLeft_creator="1"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/txtEmiResult"
android:layout_width="90dp"
android:layout_height="24dp"
android:layout_marginLeft="10dp"
android:layout_marginStart="13dp"
android:text="Test"
android:textSize="20sp"
app:layout_constraintBaseline_toBaselineOf="@+id/textView5"
app:layout_constraintLeft_toRightOf="@+id/textView5"
tools:layout_constraintBaseline_creator="1"
tools:layout_constraintLeft_creator="1" />
</android.support.constraint.ConstraintLayout>
答案 0 :(得分:0)
......艰难的一个。
首先,你没有开始第二次Activity
。你的setContentView()
内部按钮onClick()
调用除了交换布局XML文件之外什么也没做,这在这种情况下无关紧要,Activity
保持不变。考虑使用Intent
开始您的第二个Activity
。
其次,请注意您的第二个Activity
没有Button
,只有2 TextViews
。您将从XML绑定到您的代码内引用时获得ClassCastException
,因为它是TextView
,而不是Button
。更不用说NullPointerException
来自findViewById(R.id.btnCalculate)
的{{1}},因为它似乎不存在于您的XML文件中。
答案 1 :(得分:0)
嘿,您正在尝试替换视图而不是启动活动。 在onClick函数里面写这个
Intent intent = new Intent(getApplicationContext(),SecondActivity.class);
startActivity(intent);
而不是
setContentView(R.layout.activity_calc_emi);
答案 2 :(得分:-1)
您需要开始第二项活动。
替换:
setContentView(R.layout.activity_calc_emi);
使用:
startActivity(new Intent(dashBoard.this, calcEmi.class));
您的btnCalculate
文件中没有任何ID为activity_calc_emi.xml
的按钮。所以它会抛出一个null异常。