-
AlertDialog弹框
AlertDialog弹框,会弹出一个对话框,使得该对话框处于界面顶层,并且停止活动中所有操作,一般用于在用户删除比较重要的文件时使用,用来提醒用户资料的重要性。代码如下:
AlertDialog.Builder dialog = new AlertDialog.Builder (MainActivity.this); //创建对象 dialog.setTitle("this is dialog "); //设置弹框的标题 dialog.setMessage("something important."); //设置弹框的内容 dialog.setCancelable(false); //设置能否用back键返回 dialog.setPositiveButton("ok", new DialogInterface.OnClickListener() { //设置确定按钮的点击事件 @Override public void onClick(DialogInterface dialog, int which) { } }); dialog.setNegativeButton("cancel", new DialogInterface.OnClickListener() { //设置取消按钮的点击事件 @Override public void onClick(DialogInterface dialog, int which) { } }); dialog.show();
-
ListView的用法
ListView的简单用法,创建简单的xml文件,并在onCreate()函数中写入下列代码即可
private String[] = {"123","456","789","abc","def","ghi"};
ArrayAdapter<String> daapter = new ArrayAdapter<String(MainActivity.this,R.layout.simple_list_item_1,source);
//ListView需要借助适配器完成,ArrayAdapter<E>适配器可以通过泛型来指定需要适配的数据类型
//simple_list_item_1只引用了Android Studio中提前写好的布局文件
ListView listView = findViewById(R.id.list_view);
listView.setAdapter(adapter);
//setAdapter()方法,将适配器中的数据传输进去
- 自定义LisiView界面
创建自己想要的ListView界面的显示效果图,此处以图片和文字作为自定义界面。
创建list_view.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_margin="15dp"
>
<ImageView
android:id="@+id/list_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<!--图片视图-->
<TextView
android:id="@+id/list_name"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="15dp"
/>
<!--文字视图-->
</LinearLayout>
创建一个实体类型,用来作为ListView中的适配类型(ListView中的基本行)。新建Test_list类
public class Test_list{
private String name;
private int imageId;
public Test_list(String name,int imageId){
this.name = name;
this.imageId = imageId;
} //创建属于ListView的行内容
public String getName() {
return name;
}
public int getImageId() {
return imageId;
}
}
自定义一个适配器,该类继承了ArrayAdapter,并且泛型指定为Test_list类。
public class Text_Adapter extends ArrayAdapter<Test_list> {
private int rouse_id;
public Text_Adapter (Context context, int textView_id, List<Test_list> objects){
super(context,textView_id,objects);
rouse_id = textView_id;
}
//重写了父类的构造函数,将上下文、布局的id、数据,传入进来
private TextView Name;
private ImageView Image;
@Override
public View getView(int position, View convertView,ViewGroup parent) {
Test_list test_list = getItem(position); //获得当前的实列对象
View view = LayoutInflater.from(getContext()).inflate(rouse_id,parent,false);
//为view实例对象加载该布局(重写构造函数时获得的id的布局),false指的是不会为该布局添加父布局
Image = view.findViewById(R.id.list_image);
Name = view.findViewById(R.id.list_name);
Image.setImageResource(test_list.getImageId());
Name.setText(test_list.getName());
//将获得的内容写入到视图中
return view;
//返回布局
}
}
最后,修改主函数的代码。
public class MainActivity extends AppCompatActivity{
private List<Test_list> text_list = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
Text_Adapter dapter = new Text_Adapter (MainActivity.this,R.layout.list_view,text_list);
ListView listView = findViewById(R.id.list_view);
listView.setAdapter(adapter);
}
public void init(){
for(int i = 0; i < 5; i++){
Test_list apple = new Test_list("123",R.drawable.apple);
text_list .add(apple);
Test_list apple1 = new Test_list("456", R.mipmap.ic_launcher);
text_list .add(apple1);
Test_list apple2 = new Test_list("789",R.drawable.ic_launcher_background);
text_list .add(apple2);
}
}
}
以上是对ListView的简单基础应用,随着大家的深入了解还会发现许多关于ListView的高深用法,本萌新就不一一在这里说了。
PS:本博客内容基本上是自学android时用于方便自己回顾的,如果有大神,发现问题,请直接提点。