У меня очень простой вопрос об управлении меню в Android. Я пишу программу, которая выполняет некоторые простые числовые вычисления и выводит ответ. Мой вопрос в том, как заставить программу перейти на второй экран при нажатии кнопки и как я могу позволить пользователю вернуться к исходному экрану. Вот быстрый пример
Экран 1
"Add Numbers"
Input 1st # ____
Input 2nd # ____
(Add)
Экран 2
The answer is "____"
Пользователь вводит два целых числа. нажимает add, а затем программа переходит на второй экран, на котором отображается ответ. Если они хотят, они могут вернуться на первый экран и начать все сначала.
Я знаю, что это было покрыто, но с таким количеством ресурсов я не знаю, что искать. Ответы или ссылки на ресурсы были бы наиболее полезными. Спасибо!
Вы можете использовать следующий макет экрана для ввода чисел. Назовите файл first.xml.
<TextView
android:id="@+id/firstnumber"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Input Ist:"
android:textSize="20px"
android:textStyle="bold"
/>
<EditText
android:id="@+id/first"
android:layout_height="wrap_content"
android:layout_width="250px"
/>
<TextView
android:id="@+id/secondnumber"
android:text = "Input 2nd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20px"
android:textStyle="bold"
/>
<EditText
android:id="@+id/second"
android:layout_height="wrap_content"
android:layout_width="250px"
/>
<Button
android:id="@+id/add_button"
android:text="Add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15px"
android:layout_centerHorizontal="true"
/>
</LinearLayout>
Чтобы добавить эти числа
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.first);
Button add = (Button) findViewById(R.id.add);
add.setOnClickListener(this);
EditText num1 = (EditText)findViewById(R.id.first);
EditText num2 = (EditText)findViewById(R.id.second);
}
Код прослушивателя кликов
public void onClick(View v) {
int n1 = Integer.parseInt(num1.getText().toString());
int n2 = Integer.parseInt(num2.getText().toString());
int result = n1 + n2;
String res = Integer.toString(result);
Intent intent = new Intent(getApplicationContext(), Result.class);
intent.putExtra("result", result); //Passing the result to the second activity using intent
startActivity(intent);
}
В классе Result.java.
public class Result extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.result);
Intent intent = getIntent();
String result = intent.getStringExtra("result");
TextView t1 = (TextView)findViewById(R.id.result);
t1.setText(result);
}
}
Надеюсь, что это поможет.
ViewFlipper будет работать хорошо. Вы также можете попробовать "startActivityForResult" передать ваши ответы на следующий экран.
Могу ли я узнать, какой язык вы используете? Недавно я только что сделал это с С#. Мой поток заключается в том, что когда я запускаю программу, он автоматически будет принудительно подключен ко второму экрану с некоторыми параметрами питания.
Но если вы просто перемещаете программу на экраны diff, в С# это будет легко.
Screen Srn = Screen.PrimaryScreen; // gives your information of Primary Screen.
Screen[] Srn = Screen.AllScreens; //gives u an array of all your available screen( srn[0] is primary screen, etc)
Итак, используя intellisense из IDE, вы должны иметь возможность получить ширину, высоту и т.д. Не могу точно помнить, но что-то вроде src.width или src.bounds.width.
Самый простой способ переместить вашу программу - переместить ось х программы на соответствующий экран.
Взгляните на класс ViewFlipper. Он работает как вкладки, но без пользовательского интерфейса вкладок. Вы можете использовать макет xml для отображения ваших 2 (или более) экранов и showNext() или showPrevious() для переключения между экранами.