Android开发基础4:事件处理和交互实现程序设计

应用前提:Android开发中,事件是用户对图形界面的操作,Android应用程序通过事件和信息来实现人机交互。

事件包括:按下、弹起、滑动、双击。

信息包括:信息框、对话框、通知。

本节学习和Android中与事件处理和交互相关的组件及知识。

每个工程下面的模块必须做的工作!

布局文件.xml中必须设置的是:根目录为,里面添加android:orientation的方向属性为vertical。

1.Toast--显示信息提示框

应用场景:App注册界面,用户发送手机号码进行验证时,用户单击“发送验证码”后,页面下方会出现一条信息“已发送,请注意查收”。信息出现3~5s然后自动消失。这样的就是Toast提示信息。

但是注意:我们常说这种提示信息是和对应事件匹配使用。比如点击--按钮,就需要在点击按钮时设置Toast提示框。

1.1.常用的两个方法:

(1).makeText(Context context,CharSequence text,int duration)创建一个Toast。context的参数为上下文MainActivity、text为Toast提示内容:字符串、duration为Toast停留时间:LENGT_SHORT/LENGTH_LONG。

(2).show()显示这个Toast

    *    .setGravity(int gravity,int xOffset,int yOffset)设置Toast的位置。

    *    .addView(图片名称)设置Toast的图片。

1.2.步骤:

(1)在xml布局文件中添加Button控件(按钮控件)。

(2)在java类文件中创建Button对象,并在onCreate方法中使用findViewById(R.id.按钮id名)将Button对象和对应布局文件的控件绑定。

(3)使用Toast类的方法makeText和show方法创建和显示Toast。ex:Toast.makeText(上下文MainActivity.this,“在Toast要显示的字符串”,Toast.LENGTH_SHORT(显示时间长短)).show()     

   1.3.Toast种类:

普通的Toast提示框:

Toast.makeText().show()

带有图片的Toast提示框:

1.4.代码及结果


public class MainActivity extends AppCompatActivity {Button btnok;
@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btnok=findViewById(R.id.btnok);btnok.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {Toast t=Toast.makeText(MainActivity.this,"已经确认",Toast.LENGTH_SHORT);t.show();//show显示Toastt.setGravity(Gravity.CENTER,0,0);//setGravity设置Toast的位置,这个Gravity.CENTER,0,0就正好在中间ImageView image1=new ImageView(MainActivity.this);image1.setImageResource(R.mipmap.ic_launcher);LinearLayout toastview=(LinearLayout) t.getView();toastview.addView(image1);//添加到线性布局中显示,这样就可以显示图片了Toast.makeText(MainActivity.this,"ok",Toast.LENGTH_SHORT).show();
}

 

2.AlertDialog对话框:

应用场景:在APP界面中选择退出时,通常会弹出一个对话框,让用户选择是否退出,这种提示框就是Dialog提示框,内容包括:内容:图标、标题、内容、按钮。需要用户做出决定再继续行动。

1.1.常用的方法

(1).setIcon(int iconId)方法.设置Dialog图标。

(2).setTitle(CharSequence  message)方法,设置Dialog图标。

(3).setMessage(CharSequence message)方法,设置Dialog内容。

(4).setPostiveButton(CharSequence text,DialogInterface.OnClickListener listener)方法,设置确认按钮

(5).setSingleChioceItems(CharSequence[] items,intcheckItem,android.content.DialogInterface.OnClickListener listener)设置单选列表

(6).create()方法,创建Dialog。

(7).show()方法,显示Dialog。

1.2.步骤

(1)创建AlertDialog类下面的构造器Builder。

(2)Builder调用方法设置对话框样式。设置对话框图标:setIcon;设置对话框标题:setTitle;设置对话框按钮setPositiveButton“确定”键按钮;setNegativeButton”取消“键按钮;setNeutralButton"忽略"按钮。

(3)Builder.create().show()创建展示对话框。Builder调用AlertDialog类的create()和show()按钮创建并显示对话框。

1.3Dialog种类

普通对话框

单选对话框

多选对话框

1.4代码及结果



public class MainActivity extends AppCompatActivity {Button btnok;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btnok=findViewById(R.id.btnok);@Overridepublic void onClick(View view) {//1.应该先创建Builder对象AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);//最简单是提示框就是这四个部分,图标、标题,按钮,内容builder.setTitle("警告");builder.setIcon(R.mipmap.ic_launcher);// 普通对话框   builder.setMessage("是否退出系统");//单选对话框、多选对话框final String []city={"北京","上海","广州","成都"};builder.setSingleChoiceItems(city,0,null);builder.setPositiveButton("是", new DialogInterface.OnClickListener(){@Overridepublic void onClick(DialogInterface dialogInterface,int i){finish();}});//注意构造器构造完成后,不要忘记使用create构造dialogbuilder.setNegativeButton("否",null);builder. setNeutralButton("忽略",null);AlertDialog dialog=builder.create();dialog.show();}});
}

 

3.Menu

应用场景:对内容或事件进行分类触发,菜单下面有子菜单。

1.1.常见方法:

1.2步骤:

(1).手动创建菜单资源文件--res-->右键选择Menu Resource Dictionary-->资源类型选择menu-->menu文件右键创建Menu Recource File。

   (2).menu.xml文件的根目录设置为

,并在item菜单选项里面填写属性。id,title。

(3).在java类文件中添加响应菜单选择的代码

 

1.4.代码及结果



 

public class MainActivity extends AppCompatActivity {//重写获取菜单方法@Overridepublic boolean onCreateOptionsMenu(Menu menu){//R表示获取资源文件getMenuInflater().inflate(R.menu.main_menu,menu);boolean b = true;return b;}@SuppressLint("MissingInflate")//这个是Menu菜单的监听器,退出界面就会提示:单击了添加菜单//这个是Menu菜单的监听器,退出界面就会提示:单击了添加菜单@Overridepublic boolean onOptionsItemSelected(@NonNull MenuItem item){switch(item.getItemId()){case R.id.add_item:Toast.makeText(MainActivity.this,"单击了添加菜单",Toast.LENGTH_SHORT).show();break;case R.id.modify_item:Toast.makeText(MainActivity.this,"单击了添加菜单",Toast.LENGTH_SHORT).show();break;case R.id.delete_item:Toast.makeText(MainActivity.this,"单击了添加菜单",Toast.LENGTH_SHORT).show();break;case R.id.exit_item:Toast.makeText(MainActivity.this,"单击了添加菜单",Toast.LENGTH_SHORT).show();finish();break;default:}return true;}

 

4.下拉列表框

应用场景:提供一系列可以供用户选择的列表项。下拉列表通常在右侧会有一个小三角图标。

1.1.常用方法:

1.2.步骤:

下拉列表--Sprinner控件
1.在xml布局文件中添加spinner控件
2.定义对象--绑定控件--设置下拉列表项--创建适配器Adapter--让控件显示数据

Q:为啥没有显示下拉框?--因为你没有写Android:orientation=“vertical”。
 


public class MainActivity extends AppCompatActivity {Spinner sncource;//步骤三--设置spinner下拉列表项private String[] course={"语文","数学","英语","政治","历史"};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btnok=findViewById(R.id.btnok);//步骤1--sncource=findViewById(R.id.sn_course);ArrayAdapter adapter=new ArrayAdapter(MainActivity.this, android.R.layout.simple_spinner_dropdown_item,course);sncource.setAdapter(adapter);sncource.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {@Overridepublic void onItemSelected(AdapterView adapterView, View view, int i, long l) {TextView tv=(TextView) view;String str=tv.getText().toString();Toast.makeText(MainActivity.this,"你选的课程是"+i+"门课程:"+str,Toast.LENGTH_SHORT).show();}@Overridepublic void onNothingSelected(AdapterView adapterView) {}});//1.应该先创建Builder对象AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);//最简单是提示框就是这四个部分,图标、标题,按钮,内容builder.setTitle("警告");builder.setIcon(R.mipmap.ic_launcher);// 普通对话框   builder.setMessage("是否退出系统");//单选对话框、多选对话框final String []city={"北京","上海","广州","成都"};builder.setSingleChoiceItems(city,0,null);builder.setPositiveButton("是", new DialogInterface.OnClickListener(){@Overridepublic void onClick(DialogInterface dialogInterface,int i){finish();}});//注意构造器构造完成后,不要忘记使用create构造dialogbuilder.setNegativeButton("否",null);builder. setNeutralButton("忽略",null);AlertDialog dialog=builder.create();dialog.show();}});
}

 

5.弹出式的菜单--上下文菜单

如何显示弹出式的菜单--上下文菜单

1.创建菜单资源(与选项菜单实现方法相同)
2.注册要使用菜单的控件
    registerForContextMenu(控件变量名)
3.重写onCreateContextMenu方法获取上下文菜单,方法中的语句中与onCreateOptonsMene一致。

public void onCreateContextMenu(ContextMenu menu,View v,ContextMenu.ContextMenuInfo menuInfo){

super.onCreateContextMenu(menu,v,menuInfo);

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

}
4.重写onContextItemSelected方法监听选中的菜单项--任何事件都可以实现监听。
5.在控件中的事件中弹出菜单。如:

        btnok.setOnLongClickListener(new View.OnLongClickListener(){

@Override

public boolean onLongClick(View view){
view.showContextMenu();//显示菜单

return true;

}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部