Я новичок в разработке Android.Я только что создал навигационный ящик с собственным фрагментом (простое приложение калькулятора).В этом фрагменте я добавил метод щелчка для кнопок.Но это не работает.Примечание. Я определил метод onclick в представлении xml
фрагмент калькулятора:
public class SimpleCalcActivity extends Fragment {
private TextView mDisplay;
private boolean mDisplayIsEmpty = true;
private boolean mFirstNumberReceived;
private boolean mNumberEntered;
private boolean mPointEntered;
private double sNum1;
private double sNum2;
private static OperationsAndFunctions.OperEnum sOperation;
private static OperationsAndFunctions.FuncEnum sFunction;
private Animation anim;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.activity_simplecalc,null);
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
mDisplay = (TextView) view.findViewById(R.id.resultview);
mDisplay.setText("0");
}
public void num_Clicked(View view) {
Button button = (Button) view;
int number = 0;
switch (button.getId()) {
case R.id.n_one:
number = 1;
anim = AnimationUtils.loadAnimation(getContext(),
R.anim.btn_anim);
button.startAnimation(anim);
break;
case R.id.n_two:
number = 2;
anim = AnimationUtils.loadAnimation(getContext(),
R.anim.btn_anim);
button.startAnimation(anim);
break;
...
}
...
}
представление калькулятора:
<Button
android:id="@+id/o_root"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:background="@drawable/button"
android:text="@string/root"
android:onClick="func_Clicked"
android:textStyle="bold"
android:textSize="30sp"
android:layout_marginRight="5dp"
android:layout_marginLeft="5dp"
android:textColor="@android:color/white"/>
<Button
android:tag="nums"
android:id="@+id/n_seven"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:background="@drawable/button"
android:text="@string/_7"
android:onClick="num_Clicked"
android:textStyle="bold"
android:textSize="30sp"
android:layout_marginRight="5dp"
android:layout_marginLeft="5dp"
android:textColor="@android:color/white"/>
Блок навигации:
</p>
<code> ...
public boolean onNavigationItemSelected(MenuItem item) {
Fragment fragment = null;
// Handle navigation view item clicks here.
int id = item.getItemId();
if (id == R.id.nav_simple_calc) {
fragment = new SimpleCalcActivity();
}
}
if (fragment != null){
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.screen_area, fragment);
ft.commit();
}
DrawerLayout drawer = (DrawerLayout)
findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
...
</code>
Я попробовал метод setOnClickListener, он не работает для меня, я ищу вашу помощь.Заранее спасибо.