我必须使用两个按钮(一个增量,一个减量)递增/递减Textview中的文本。我正在片段中做所有事情,我注意到它们的工作有点不同。
这些是按钮和textview
<Button
android:layout_width="36dp"
android:layout_height="match_parent"
android:layout_marginLeft="90dp"
android:text="-"
android:id="@+id/minus"
android:onClick="decrement"
/>
<TextView
android:layout_width="36dp"
android:layout_height="match_parent"
android:paddingTop="15dp"
android:textSize="18sp"
android:id="@+id/text"
android:textAlignment="center"
android:texr="stats"/>
<Button
android:layout_width="36dp"
android:layout_height="match_parent"
android:text="+"
android:id="@+id/plus"
android:onClick="increment"
/>
这是Fragment的代码
public class MyFragment extends Fragment {
int stat= 0;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_my_fragment, container, false);
}
public void increment(View view){
stat= stat+ 1;
displaytext();
}
public void decrement(View view){
stat = stat - 1;
displaytext();
}
public void displaytext(){
TextView textViewevstat = (TextView) getView().findViewById(R.id.text);
textViewevstat.setText("" + stat);
}
}
它不会带我语法错误或类似但是,在模拟器中,当我按下一个按钮时应用程序崩溃。 我必须在其他时间重新制作所有这段经文,但在这种情况下,我认为足以改变ids和方法的名称。
答案 0 :(得分:1)
这里这样做
View v; // Declare this
public class MyFragment extends Fragment {
int stat= 0;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
v=inflater.inflate(R.layout.fragment_my_fragment, container, false);
return v;
}
public void increment(View view){
stat= stat+ 1;
displaytext();
}
public void decrement(View view){
stat = stat - 1;
displaytext();
}
public void displaytext(){
TextView textViewevstat = (TextView)v.findViewById(R.id.text);// use it here
textViewevstat.setText("" + stat);
}
}