您的位置:首页 > 移动开发 > Android开发

Android学习(5)电话拨号器

2015-04-28 09:46 281 查看
观看的视频《8天快速掌握Android视频》

其是基于android 2.2的框架编写,只有一个activity_main,而我现有的开发环境是Android 4.4.2,有activity_main和fragment_main,如下图:





类似MFC中,如果有两个对话框资源文件,那么就要对应两个对话框类,一个对话框类不能加载两个资源文件。而是通过A包含B对话框类,来调用B对话框的资源,即UI.

代码:

MainActivity

package com.lawrence.phone;

import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Button;
import android.widget.EditText;

import com.lawrence.sons.PlaceholderFragment;

public class MineActivity extends ActionBarActivity {

private PlaceholderFragment mPlaceholderFragment;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mine);

mPlaceholderFragment = new PlaceholderFragment();

//将Fragment添加到main中,但是还是以子View的形式存在,main中无法访问到Fragment中的控件
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, mPlaceholderFragment)
.commit();
}

}

//    @Override
//    protected void onCreate(Bundle savedInstanceState) {
//        super.onCreate(savedInstanceState);
//        setContentView(R.layout.activity_mine);
//
//
//        //将Fragment添加到main中,但是还是以子View的形式存在,main中无法访问到Fragment中的控件
//        if (savedInstanceState == null) {
//            getSupportFragmentManager().beginTransaction()
//                    .add(R.id.container, new PlaceholderFragment())
//                    .commit();
//        }
//
//        //Todo
//        //切记:此处访问到Fragment中的控件
//        mButton = (Button)findViewById(R.id.makecall);
//        mMobileText = (EditText)findViewById(R.id.phonenumber);
//        mButton.setOnClickListener(new ButtonOnClickListener());
//
//    }

@Override
public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.mine, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}

}


FramentActivity

package com.lawrence.sons;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;

import com.lawrence.phone.R;

/**
* A placeholder fragment containing a simple view.
*/
public class PlaceholderFragment extends Fragment {

public PlaceholderFragment() {
}

private Button mButton;
private EditText mMobileText;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
//将Fragment布局填充到Fragment View中
View rootView = inflater.inflate(R.layout.fragment_mine, container, false);

//Todo

mButton = (Button)rootView.findViewById(R.id.makecall);
mMobileText = (EditText)rootView.findViewById(R.id.phonenumber);
mButton.setOnClickListener(new ButtonOnClickListener());

return rootView;
}

//点击事件内部类
private final class ButtonOnClickListener implements View.OnClickListener{

@Override
public void onClick(View arg0)
{
// TODO Auto-generated method stub
String number = mMobileText.getText().toString();

//intent 意图:你想干的事情
//首先构建这个意图intent
Intent intent = new Intent();
//行为
intent.setAction("android.intent.action.CALL");
//类别
//			intent.addCategory("android.intent.category.DEFAULT");
//数据
intent.setData(Uri.parse("tel:" + number));
//将意图发送给系统,让系统去寻找该意图匹配的Activity
startActivity(intent);	//方法内部会自动为intent添加类别:"android.intent.category.DEFAULT",所以addCategory

}

}
}


附件

链接:http://pan.baidu.com/s/1hq3WTDU 密码:0u1w
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android