listView无需适配器添加数据(写demo快速开发)entries属性的特殊用法

来源:互联网 发布:nothing 软件 编辑:程序博客网 时间:2024/06/18 07:12
先看下简单的布局代码

<?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="match_parent"    android:orientation="vertical"    android:padding="10dp">    <Button        android:id="@+id/bt"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_margin="20dp"        android:text="按钮" />    <ImageView        android:id="@+id/iv"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_margin="20dp"        android:src="@mipmap/ic_launcher" />    <EditText        android:id="@+id/et"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_margin="20dp"        android:hint="请输入文本" />    <ProgressBar        android:id="@+id/pb"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_margin="20dp"        android:background="@color/colorAccent" />    <ListView        android:id="@+id/tv"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_margin="20dp"        android:entries="@array/datas" /></LinearLayout>



再来看下,主要代码


import android.app.Activity;import android.app.AlertDialog;import android.content.DialogInterface;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.AdapterView;import android.widget.ImageView;import android.widget.ListView;import android.widget.ProgressBar;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity implements OnClickListener {  /*  @butterknife.InjectView(R.id.tv)    TextView tv;    @butterknife.InjectView(R.id.bt)    Button bt;    @butterknife.InjectView(R.id.iv)    ImageView iv;    @butterknife.InjectView(R.id.et)    EditText et;    @butterknife.InjectView(R.id.pb)    ProgressBar pb;*/    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);//        butterknife.ButterKnife.inject(this);        ListView tv = findViewById(R.id.tv);        TextView bt = findViewById(R.id.bt);        ImageView iv = findViewById(R.id.iv);        final TextView et = findViewById(R.id.et);        ProgressBar pb = findViewById(R.id.pb);//        tv.setOnClickListener(this);        bt.setOnClickListener(this);        iv.setOnClickListener(this);        et.setOnClickListener(this);        pb.setOnClickListener(this);        bt.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View view) {                Toast.makeText(MainActivity.this, "点击了按钮", Toast.LENGTH_SHORT).show();            }        });        initDialog();        tv.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {                et.setText(getResources().getStringArray(R.array.datas)[position]);            }        });    }    private void initDialog() {        AlertDialog.Builder builder = new AlertDialog.Builder(this);        builder.setTitle("温馨提示").setMessage("您收到一条短消息,请点击查看").setCancelable(false).setNegativeButton("取消", new DialogInterface.OnClickListener() {            @Override            public void onClick(DialogInterface dialogInterface, int i) {                dialogInterface.dismiss();            }        }).setPositiveButton("确定", new DialogInterface.OnClickListener() {            @Override            public void onClick(DialogInterface dialogInterface, int i) {                Toast.makeText(MainActivity.this, "点击了确定按钮,进入二级页面!", Toast.LENGTH_LONG).show();                startActivity(new Intent(MainActivity.this, HomeActivity.class));            }        }).show();    }    @Override    public void onClick(View view) {        switch (view.getId()) {            case R.id.tv:                Toast.makeText(this, "点击了TextView", Toast.LENGTH_SHORT).show();                break;            case R.id.bt:                break;            case R.id.iv:                break;            case R.id.et:                break;            case R.id.pb:                initDialog();                break;        }    }}

再来看下entries这个数据怎么写:

当然根据我的发现,这个数据目前可以有两种写法

写法一:.可以写在String.xml文件中:如下


<resources>    <string name="app_name">JavaToKotlin</string>    <string-array name="data">        <item>1</item>        <item>2</item>        <item>3</item>        <item>4</item>        <item>5</item>        <item>6</item>        <item>7</item>        <item>8</item>        <item>9</item>        <item>10</item>    </string-array></resources>

看不懂得可看截图:


写法二:

可以单独定义一个arrays.xml效果是一样的如下:


<?xml version="1.0" encoding="utf-8"?><resources>    <string-array name="datas">        <item>数据测试</item>        <item>真机测试</item>        <item>霸王别姬</item>        <item>爱情公寓</item>        <item>萝卜白菜</item>        <item>私家侦探</item>        <item>中华小当家</item>    </string-array></resources>


同样看不懂得可看截图:





大家再来看下,这个entries属性的效果图,是否跟用适配器开发的效果一样:



说白了这个entries属性就相当于一个简单的数组,可以存放简单的数据,方便开发


需要源码的点击下载源码listView无需适配器添加数据(写demo快速开发)entries属性的特殊用法

阅读全文
0 0
原创粉丝点击