Я хочу создать калькулятор с помощью меню.
Я ввожу первое и второе число и выбираю, хочу ли я сложить, вычесть, разделить, умножить два числа или умножить результат умножения на 3 или 4.
Используя меню параметров и контекстное меню тоже.
Это то, что я сделал до сих пор.
package com.example.asus.menuassignment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
EditText text1;
EditText text2;
TextView text;
int fNum;
int sNum;
int result;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text1 = (EditText)findViewById(R.id.editText);
text2 = (EditText)findViewById(R.id.editText2);
text = (TextView)findViewById(R.id.textView3);
fNum = Integer.parseInt(text1.getText().toString());
sNum = Integer.parseInt(text2.getText().toString());
registerForContextMenu(text);
}
//options menu part
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
getMenuInflater().inflate(R.menu.menu, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
//multiply
case R.id.item1:
result = fNum*sNum;
text.setText(String.valueOf(result));
return true;
//multiplying a result by 3 or 4
case R.id.item11:
result = result * 3;
text.setText(String.valueOf(result));
return true;
case R.id.item12:
result = result * 4;
text.setText(String.valueOf(result));
return true;
//Add
case R.id.item2:
result = fNum + sNum;
text.setText(String.valueOf(result));
return true;
//Subtract
case R.id.item3:
result = fNum - sNum;
text.setText(String.valueOf(result));
return true;
//Divide
case R.id.item4:
result = fNum / sNum;
text.setText(String.valueOf(result));
return true;
}
return super.onOptionsItemSelected(item);
}
//By long pressing the result a context menu appears
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo)
{
getMenuInflater().inflate(R.menu.menu, menu);
super.onCreateContextMenu(menu, v, menuInfo);
}
@Override
public boolean onContextItemSelected(MenuItem item)
{
switch (item.getItemId()) {
//multiply
case R.id.item1:
result = fNum * sNum;
text.setText(String.valueOf(result));
return true;
//multiplying a result by 3 or 4
case R.id.item11:
result = result * 3;
text.setText(String.valueOf(result));
return true;
case R.id.item12:
result = result * 4;
text.setText(String.valueOf(result));
return true;
//Add
case R.id.item2:
result = fNum + sNum;
text.setText(String.valueOf(result));
return true;
//Subtract
case R.id.item3:
result = fNum - sNum;
text.setText(String.valueOf(result));
return true;
//Divide
case R.id.item4:
result = fNum / sNum;
text.setText(String.valueOf(result));
return true;
}
return super.onContextItemSelected(item);
}
}
У меня нет ошибок, но приложение вылетает, что именно не так или чего здесь не хватает?
Обновление: Это logcat