我对Android中的菜单控制有一个非常简单的问题。我正在编写一个执行一些简单数值计算并输出答案的程序。我的问题是当按下按钮时如何使程序移动到第二个屏幕,以及如何让用户移回原始屏幕。 这是一个简单的例子
屏幕1
"Add Numbers"
Input 1st # ____
Input 2nd # ____
(Add)
屏幕2
The answer is "____"
用户输入两个整数。按下添加,然后程序移动到显示答案的第二个屏幕。如果他们想要用户,他们可以返回第一个屏幕并重新开始。
我知道这已被覆盖,但有这么多资源,我不知道该寻找什么。答案或资源链接将是最有帮助的。谢谢!
答案 0 :(得分:3)
您可以使用以下布局为屏幕输入数字。将文件命名为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);
}
}
希望这会有所帮助..
答案 1 :(得分:1)
我可以知道您使用的是哪种语言? 我最近刚用C#做过。 我的流程是,当我启动一个程序时,会自动强制进入第二个屏幕,并带有一些电源选项。
但如果你只是将程序移动到差异屏幕,那么在C#中就很容易了。
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)
因此,使用IDE中的intellisense,应该能够获得宽度,高度等。 不记得确切,但是像src.width或src.bounds.width。
移动程序的最简单方法是将程序x轴移动到相应的屏幕。
答案 2 :(得分:1)
ViewFlipper将运作良好。您也可以尝试“startActivityForResult”将答案传递到下一个屏幕。
答案 3 :(得分:0)
看一下ViewFlipper课程。它像标签一样工作,但没有标签UI。您可以使用xml布局显示2个(或更多)屏幕,并使用showNext()或showPrevious()在屏幕之间切换。