Android的极其简单的菜单问题

时间:2010-08-08 00:46:38

标签: android user-interface

我对Android中的菜单控制有一个非常简单的问题。我正在编写一个执行一些简单数值计算并输出答案的程序。我的问题是当按下按钮时如何使程序移动到第二个屏幕,以及如何让用户移回原始屏幕。 这是一个简单的例子

屏幕1

"Add Numbers"

Input 1st # ____       
Input 2nd # ____      
(Add) 

屏幕2

The answer is "____"

用户输入两个整数。按下添加,然后程序移动到显示答案的第二个屏幕。如果他们想要用户,他们可以返回第一个屏幕并重新开始。

我知道这已被覆盖,但有这么多资源,我不知道该寻找什么。答案或资源链接将是最有帮助的。谢谢!

4 个答案:

答案 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()在屏幕之间切换。