android 弹出菜单 toast,Android学习第二天:Toast(提醒)、Menu(菜单)、Intent的显式和隐式(包括打开、适配网站,调用拨号界面等)...

1.Toast提醒

为昨天写的按钮程序添加一个提醒,在MainActivity中添加如下代码:

Button bt1 = (Button) findViewById(R.id.button_1);

bt1.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

Toast.makeText(MainActivity.this, "您点击了按钮1", Toast.LENGTH_SHORT).show();

}

});

findViewById()方法用于获得布局文件文件中的元素,值通过属性Id指定。(该返回值是View对象,需要转成Button对象)

setOnClickListener()方法是用于注册监听器,点击执行

makeText()方法需要三个参数,第一个是context(toast要求的上下文,活动本身就是一个context),第二个是显示的内容,第三个是显示的时常。

运行结果如下:

2.Menu菜单

首先在res目录下创建一个menu文件夹,并在文件内创建一个xml文件,命名为main

main.xml文件中代码如下:

每个item标签为定义一个菜单中的选项

在MainActivity中添加如下代码,重写onCreatOptionsMenu()方法

public boolean onCreateOptionsMenu(Menu menu){

super.onCreateOptionsMenu(menu);

getMenuInflater().inflate(R.menu.main,menu);

return true;

}

getMenuInflater()方法能够得到MenuInflater对象,再调用inflate()方法可以给当前活动创建菜单。inflate()方法需要两个参数,第一个是从哪个资源文件来创建菜单,第二个用于指定菜单项添加到哪个Menu对象中。(返回值true用于将菜单显示出来)

运行结果如下:

3.为Menu菜单添加监听器

在MainActivity中添加如下代码,重写onOptionsItemSelected()方法

public boolean onOptionsItemSelected(MenuItem item){

switch(item.getItemId()){

case R.id.add_item:

Toast.makeText(this, "您点击了Add按钮", Toast.LENGTH_SHORT).show();

break;

case R.id.remove_item:

Toast.makeText(this, "您点击了Remove按钮", Toast.LENGTH_SHORT).show();

break;

default:

}

return true;

}

通过item.getItemId()方法来判断点击的是哪个菜单项。

运行结果如下(点击Add):

4.显式Intent

首先再创建一个Activity,命名为SecondActivity

public class SecondActivity extends AppCompatActivity{

protected void onCreate(Bundle savedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_second);

}

}

在layout中再创建一个xml,命名为activity_second

我让这个新的活动显示Hello World

最后到AndroidManifest中给新的活动注册

为了能够使用第二个活动,将MainActivity中的button的监听器改为:

Button bt1 = (Button) findViewById(R.id.button_1);

bt1.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

Intent intent = new Intent(MainActivity.this,SecondActivity.class);

startActivity(intent);

}

});

程序运行结果如下(点击按钮Button 1):

Intent()方法需要两个参数,第一个参数context要求提供各一个启动活动的上下文,第二个参数class则是指定想要启动的活动目标。

startActivity()方法用于启动活动,来执行这个Intent。

5.隐式Intent

首先在AndroidManifest中修改刚才注册的SecondActivity:

然后修改MainActivity中的按钮监听器:

Button bt1 = (Button) findViewById(R.id.button_1);

bt1.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

Intent intent = new Intent("bistu.com.test.ACTION_START");

startActivity(intent);

}

});

然后运行这个程序,跟刚才的显式效果一样。

会发现在监听器中并没有指定category,实际上默认为DEFAULT。

如果在监听器中加上一句“intent.addCategory("bistu.com.test.MY_CATEGORY")”,则会报错,只需要在活动注册中,添加“”即可。

6.更多隐式Intent用法

①.将按钮改为点击打开网页,将MainActivity中的监听器修改为:

bt1.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

Intent intent = new Intent(Intent.ACTION_VIEW);

intent.setData(Uri.parse("https://www.baidu.com"));

startActivity(intent);

}

});

运行结果如下:

(点击Button后,用浏览器打开了百度的网站)

通过Uri.parse()方法将王志字符串解析成一个Uri对象,调用Insert的setData()方法将这个Uri对象传递进去。

②.在①的基础上,让这个程序适配网页

修改注册代码为:

点击按钮后:

可以选择用该软件来适配网页(但是不能使用)

③.调用系统拨号界面

将按钮的监听器改为:

bt1.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

Intent intent = new Intent(Intent.ACTION_DIAL);

intent.setData(Uri.parse("tel:10086"));

startActivity(intent);

}

});

点击button后如下:

你可能感兴趣的:(android,弹出菜单,toast)