android电话拨号 动态添加按钮,【实验】电话拨号、动态添加按钮

MainActivity2:

package com.example.lab2;

import android.net.Uri;

import android.os.Bundle;

import android.app.Activity;

import android.content.Context;

import android.content.Intent;

import android.view.Gravity;

import android.view.Menu;

import android.view.View;

import android.view.View.OnClickListener;

import android.view.View.OnLongClickListener;

import android.view.ViewGroup;

import android.widget.Button;

import android.widget.EditText;

import android.widget.GridLayout;

import android.widget.GridLayout.LayoutParams;

import android.widget.GridView;

import android.widget.ImageButton;

import android.widget.LinearLayout;

import android.widget.TextView;

import android.widget.Toast;

public class MainActivity2 extends Activity {

Context context;

GridLayout gl;

Button btn;

String temp;

TextView tv;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main2);

init(); //初始化

int count=1;

final Button[] btn = new Button[30];

for(int i=0;i<5;i++)

for(int j=0;j<3;j++) {

System.out.println("count:"+count);

btn[i*3 + j] = new Button(this);

btn[i*3 + j].setWidth(100);

switch(i*3 + j)

{

case 9:btn[i*3 + j].setText("*");

break;

case 10:btn[i*3 + j].setText("0");

break;

case 11:btn[i*3 + j].setText("#");

break;

case 12:btn[i*3 + j].setText("清除");

break;

case 13:btn[i*3 + j].setText("拨打");

break;

case 14:btn[i*3 + j].setText("返回");

break;

default:btn[i*3 + j].setText(String.valueOf(count));

break;

}

count++;

GridLayout.Spec rowSpec = GridLayout.spec(i); //设置它的行和列

GridLayout.Spec columnSpec=GridLayout.spec(j);

GridLayout.LayoutParams params=new GridLayout.LayoutParams(rowSpec,columnSpec);

params.setGravity(Gravity.LEFT);

gl.addView(btn[i*3 + j],params);

final int number = i*3+j;

OnClickListener listener = new OnClickListener() {

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

String num="";

switch(number)

{

case 9:

num = "*";

temp = tv.getText().toString();

tv.setText(temp + num);

break;

case 10:

num = "0";

temp = tv.getText().toString();

tv.setText(temp + num);

break;

case 11:

num = "#";

temp = tv.getText().toString();

tv.setText(temp + num);

break;

case 12:

tv.setText("");

break;

case 13:

String PhoneNumber = tv.getText().toString();

Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:" + PhoneNumber));

startActivity(intent);

break;

case 14:

int len = tv.getText().toString().length();

String substr = tv.getText().toString().substring(0, len-1);

tv.setText(substr);

break;

default:

num = String.valueOf(number+1);

temp = tv.getText().toString();

tv.setText(temp + num);

break;

}

//Toast.makeText(MainActivity2.this, "num", Toast.LENGTH_SHORT);

}

};

btn[number].setOnClickListener(listener);

}

}

public void init()

{

gl = (GridLayout)findViewById(R.id.gl);

context = MainActivity2.this;

tv = (TextView)findViewById(R.id.tv);

}

}

xml:

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

>

android:id="@+id/tv"

android:maxLines="2"

android:textSize="20dp"

android:layout_width="wrap_content"

android:layout_height="wrap_content"/>

android:id="@+id/gl"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:columnCount="3"

android:rowCount="5"

>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值