先看下简单的布局代码
<?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属性的特殊用法