1. 实验目的
理解Android中的Intent,掌握Intent启动Activity的方法
2.实验要求
三个页面分别改为“拨打电话”,“浏览网页”和“播放视频”。当用户点击“拨打电话”列表项中的选项时,启动系统拨号界面拨打所选号码。其余两个页面类似。注意在AndroidManifest.xml中设置拨号权限,播放视频启用自带播放器,通过传入一个Action为ACTION_VIEW同时,指定Data为所要播放的Audio的Uri对象,并指定格式信息,就可以调用播放器来播放该Audio了。
3.实验步骤
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="org.zjicm.fragmenttabhosttest.MainActivity" >
<FrameLayout
android:id="@+id/framelayout1"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1">
</FrameLayout>
<android.support.v4.app.FragmentTabHost
android:id="@+id/tabhost"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="0dp"
android:layout_height="0dp" />
</android.support.v4.app.FragmentTabHost>
</LinearLayout>
tab_item_view.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical" >
<ImageView
android:id="@+id/imageview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="false"
android:padding="3dp"
>
</ImageView>
<TextView
android:id="@+id/textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textSize="12sp"
android:textColor="#000000">
</TextView>
</LinearLayout>
MainActivity
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentTabHost;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.TabHost.TabSpec;
import android.widget.TextView;
@SuppressLint("InflateParams")
public class MainActivity extends FragmentActivity {
private FragmentTabHost tabHost;
private LayoutInflater layoutInflater;
private Class<?> fragmentArray[] = { Call.class,
Search.class, Video.class };
private int imageArray[] = { android.R.drawable.ic_menu_call,
android.R.drawable.ic_menu_compass,
android.R.drawable.ic_media_play };
private String tabName[] = { "拨打电话", "浏览网页", "播放视频" };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private void initView() {
// TODO Auto-generated method stub
layoutInflater = LayoutInflater.from(this);
tabHost = (FragmentTabHost) findViewById(R.id.tabhost);
tabHost.setup(this, getSupportFragmentManager(), R.id.framelayout1);
for (int i = 0; i < tabName.length; i++) {
TabSpec tabSpec = tabHost.newTabSpec(tabName[i]).setIndicator(
getTabItemView(i));
tabHost.addTab(tabSpec, fragmentArray[i], null);
}
}
/**
*
* 给每个Tab按钮设置图标和文字
*/
private View getTabItemView(int index) {
View view = layoutInflater.inflate(R.layout.tab_item_view, null);
ImageView imageView = (ImageView) view.findViewById(R.id.imageview);
imageView.setImageResource(imageArray[index]);
TextView textView = (TextView) view.findViewById(R.id.textview);
textView.setText(tabName[index]);
return view;
}
}
拨打电话代码
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class Call extends Fragment{
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
Button bt;
final EditText et;
View view = inflater.inflate(R.layout.call, container, false);
bt = (Button) view.findViewById(R.id.Call_Button);
et = (EditText) view.findViewById(R.id.Call_EditText);
bt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String inputStr = et.getText().toString();
if (inputStr.trim().length() != 0) {
Intent phoneIntent = new Intent(
"android.intent.action.DIAL", Uri.parse("tel:"
+ inputStr));
startActivity(phoneIntent);
}
else {
Toast toast;
toast = Toast.makeText(getActivity(), "不能输入为空", Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
}
}
});
return view;
}
}
搜索代码:
import android.annotation.SuppressLint;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
@SuppressLint("InflateParams") public class Search extends Fragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.search, container,false);
Button bt;
final EditText et;
bt = (Button) view.findViewById(R.id.SearchButton);
et = (EditText) view.findViewById(R.id.SearchEditText);
bt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String inputStr = et.getText().toString();
if (inputStr.trim().length() != 0) {
Intent searchIntent = new Intent(Intent.ACTION_VIEW,Uri.parse("http://www.baidu.com/s?wd="+inputStr));
startActivity(searchIntent);
}
else{
Toast toast;
toast = Toast.makeText(getActivity(), "不能输入为空", Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
}
}
});
return view;
}
}
import android.annotation.SuppressLint;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.Toast;
import android.widget.VideoView;
@SuppressLint("InflateParams") public class Video extends Fragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.video, container, false);
final VideoView videoView = (VideoView) view.findViewById(R.id.videoView);
videoView.setVideoURI(Uri.parse("android.resource://org.zjicm.fragmenttabhosttest/" + R.raw.test));
Button playButton = (Button) view.findViewById(R.id.playByVidetView);
playButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
videoView.start();
}
});
Button playByIntent = (Button) view.findViewById(R.id.playByIntent);
playByIntent.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent playIntent = new Intent();
playIntent.setAction(Intent.ACTION_VIEW);
Uri uri = Uri.parse(Environment.getExternalStorageDirectory().getPath()+"/Download/test.mp4");
playIntent.setDataAndType(uri, "video/mp4");
startActivity(playIntent);
}
});
return view;
}
}