Android入门笔记之线性布局(计算器)

<1>简介

 LinearLayout是线性布局控件,它包含的子控件将以横向或竖向的方式排列,按照相对位置来排列所有的widgets或者其他的containers,超过边界时,某些控件将缺失或消失。因此一个垂直列表的每一行只会有一个widget或者是container,而不管他们有多宽,而一个水平列表将会只有一个行高(高度为最高子控件的高度加上边框高度)。LinearLayout保持其所包含的widget或者是container之间的间隔以及互相对齐(相对一个控件的右对齐、中间对齐或者左对齐)。

android:id  ——为控件指定相应的ID
     android:text —— 指定控件当中显示的文字,需要注意的是,这里尽量使用strings.xml文件当中的字符串
     android:grivity —— 指定控件的基本位置,比如说居中,居右等位置
     android:textSize—— 指定控件当中字体的大小
     android:background—— 指定该控件所使用的背景色,RGB命名法 
      android:width —— 指定控件的宽度
     android:height —— 指定控件的高度
    android:padding*—— 指定控件的内边距,也就是说控件当中的内容
     android:sigleLine—— 如果设置为真的话,则将控件的内容在同一行当中进行显示

<2>关键步骤

1、           编写线性布局相关的布局xml文件

2、           编写计算器的逻辑处理Activity

3、           修改AndroidManifest等配置文件

<3>出现的问题

       1、问题描述:

当新建一个布局xml文件后,在R.java文件中也能找到该xml文件,但是在Activity中提示错误。

      解决方法:

原因是import的是android.R.  这是系统用的标准库,不是你APP自己的库。把import android.R;删掉,重新import包含你app的Package名的R就可以了。

 

<4>代码及解释

       效果图:Android入门笔记之线性布局(计算器)_第1张图片

ButtonActivity.java:

public class ButtonActivity extends Activity{
	int[] button = new int[]{
			R.id.button1, R.id.button2 , R.id.button3 , R.id.button4 , R.id.button5 , R.id.button6 ,
			R.id.button7, R.id.button8 , R.id.button9 , R.id.button0
	};
	Button buttonadd , buttonmin , buttonmul , buttondiv , buttonequ , buttonc;
	TextView tv;
	String str1 = null;
	String str2 = null;
	int result,result0 ,result1;
	int flag = 0;
	Button temp;
	
	public void initButton()
	{		
		buttonc = (Button)this.findViewById(R.id.buttonc);
		buttonadd = (Button)this.findViewById(R.id.buttonadd);
		buttonmin = (Button)this.findViewById(R.id.buttonmin);
		buttonmul = (Button)this.findViewById(R.id.buttonmul);
		buttondiv = (Button)this.findViewById(R.id.buttondiv);
		buttonequ = (Button)this.findViewById(R.id.buttonequ);
		tv = (TextView)this.findViewById(R.id.textView1);
	}
	
	public void buttonListener(Button button , final int id)
	{
		button.setOnClickListener(
				new OnClickListener()
				{
					@Override
					public void onClick(View v) {
						// TODO Auto-generated method stub
						String str = tv.getText().toString().trim();
						result0 = Integer.parseInt(str);
						tv.setText("");
						flag = id;
					}						
				}
			);
		
	}
	
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_button);
		initButton();
		buttonc.setOnClickListener(
				new OnClickListener()
				{
					public void onClick(View v)
					{
						str1 = "";
						str2 = "";
						tv.setText(str1);
						flag = 0;
						//Toast.makeText(ButtonActivity.this, "click", Toast.LENGTH_LONG).show();
					}
				});
		for(int i = 0 ; i < 10 ; i++)
		{
			temp = (Button)findViewById(button[i]);
			temp.setOnClickListener(
					new OnClickListener()
					{
						@Override
						public void onClick(View v) {
							// TODO Auto-generated method stub
							str1 = tv.getText().toString().trim();
							str1 = str1 + ((Button)v).getText();
							tv.setText(str1);
						}						
					}
				);
		}
		
		buttonListener(buttonadd , 1);
		buttonListener(buttonmin , 2);
		buttonListener(buttonmul , 3);
		buttonListener(buttondiv , 4);
		
		buttonequ.setOnClickListener(new OnClickListener()
		{
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				result1 = Integer.parseInt(str1);
				if(flag==1)
    	        {
    	        	result=result0+result1;
    	        	System.out.println(result0+":"+result1);
    	        }else if(flag==2)
    	        {
    	        	result=result0-result1;
    	        }else if(flag==3)
    	        {
    	        	result=result0*result1;
    	        }else if(flag==4)
    	        {
    	        	result=(int)(result0/result1);
    	        }
    			String str=(result+"").trim();
    			System.out.println(str);
    			tv.setText(str);
			}			
		});		
	}
}
Activity_linear.xml:



    

    

        




你可能感兴趣的:(Android入门)