上次我们介绍了CheckBox和ImageView两种控件,不熟悉用法的可以查看我的上一篇博客,链接为https://blog.csdn.net/chenpeixing361/article/details/89147660。这一次我们继续介绍新的控件——ListView和GridView。
ListView
ListView从字面义可理解为列表视图,这里我们讲解以下内容:①常用属性;②Adapter接口;③Demo演示。
我们在activity_main.xml中添加两个按钮,代码如下:
<Button
android:id="@+id/btn_list_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/list_view"
android:textAllCaps="false"/>
<Button
android:id="@+id/btn_grid_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/grid_view"
android:textAllCaps="false"/>
然后在MainActvity中编写界面跳转事件,补充代码如下:
Button btnListView = findViewById(R.id.btn_list_view);
btnListView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//跳转到ListView界面
Intent intent = new Intent(MainActivity.this, ListViewActivity.class);
startActivity(intent);
}
});
Button btnGridView = findViewById(R.id.btn_grid_view);
btnGridView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//跳转到GridView界面
Intent intent = new Intent(MainActivity.this, GridViewActivity.class);
startActivity(intent);
}
});
接着与之前不同的是,我们创建如下的活动类,这次我们另外建包,部分项目树如下图所示:
在listview包中,我们创建ListViewActivity活动类,并创建适配器ListAdapter,其中ListViewActivity代码如下:
package com.autumn.listview;
import android.app.Activity;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.Toast;
import com.autumn.R;
public class ListViewActivity extends Activity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list_view);
//加载适配器
ListView listView = findViewById(R.id.lv_1);
listView.setAdapter(new ListAdapter(ListViewActivity.this));
//设置点击事件,position代表item的下标,默认从0开始
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(ListViewActivity.this,"当前pos:"+position,Toast.LENGTH_SHORT).show();
}
});
//设置长按item事件
listView.setOnItemLongClickL