改进的ListView
代码
MainActivity.java
// An highlighted block
package com.example.test1;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Adapter;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class MainActivity extends AppCompatActivity {
private Button button;
private EditText Name;
private EditText Class;
private EditText Number;
private ListView ListView;
private SimpleAdapter simpleAdapter;
private List<Map<String,Object>> Datas = new ArrayList<Map<String,Object>>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Name = (EditText)findViewById(R.id.Name);
Class = (EditText)findViewById(R.id.Class);
Number = (EditText)findViewById(R.id.Number);
ListView = (ListView)findViewById(R.id.ListView);
button = (Button)findViewById(R.id.button);
ListView.setOnCreateContextMenuListener(this);
button.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
if(Class.getText().toString().trim().equals("")||Number.getText().toString().trim().equals("")||Name.getText().toString().trim().equals("")){
Toast.makeText(MainActivity.this,"请输入正确的信息",Toast.LENGTH_SHORT).show();
}
else{
Map<String,Object> item = new HashMap<String,Object>();
item.put("Class",Class.getText().toString());
item.put("Number",Number.getText().toString());
item.put("Name",Name.getText().toString());
Datas.add(item);
simpleAdapter.notifyDataSetChanged();
Toast.makeText(MainActivity.this,"添加信息成功",Toast.LENGTH_SHORT).show();
}
}
});
String[] from ={"Class","Number","Name"};
int[] to = {R.id.Class,R.id.Number,R.id.Name};
simpleAdapter = new SimpleAdapter(this,Datas,R.layout.item_view,from,to);
ListView.setAdapter(simpleAdapter);
}
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo){
super.onCreateContextMenu(menu,v,menuInfo);
menu.add(0,1,0,"删除");
}
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterView.AdapterContextMenuInfo menuInfo = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
int pos= (int)ListView.getAdapter().getItemId(menuInfo.position);
Datas.remove(pos);
simpleAdapter.notifyDataSetChanged();
Toast.makeText(getBaseContext(),"删除此项",Toast.LENGTH_SHORT).show();
return super.onContextItemSelected(item);
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="1000dp"
android:layout_height="1300dp"
android:orientation="vertical">
<LinearLayout
android:layout_width="300dp"
android:layout_height="50dp"
android:orientation="horizontal">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/Class"
android:textSize="20sp" />
<EditText
android:id="@+id/Class"
android:layout_width="260dp"
android:layout_height="wrap_content"
android:inputType="text"
android:textSize="20sp" />
</LinearLayout>
<LinearLayout
android:layout_width="300dp"
android:layout_height="50dp"
android:orientation="horizontal">
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/number"
android:textSize="20sp" />
<EditText
android:id="@+id/Number"
android:layout_width="260dp"
android:layout_height="wrap_content"
android:inputType="number"
android:textSize="20sp" />
</LinearLayout>
<LinearLayout
android:layout_width="300dp"
android:layout_height="50dp"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/name"
android:textSize="20sp" />
<EditText
android:id="@+id/Name"
android:layout_width="122dp"
android:layout_height="wrap_content"
android:textSize="20sp" />
</LinearLayout>
<LinearLayout
android:layout_width="300dp"
android:layout_height="50dp"
android:orientation="horizontal">
<Button
android:id="@+id/button"
android:layout_width="73dp"
android:layout_height="50dp"
android:text="@string/add"
tools:layout_editor_absoluteX="0dp"
tools:layout_editor_absoluteY="201dp" />
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout"
android:layout_width="390dp"
android:layout_height="50dp"
android:orientation="horizontal">
<TextView
android:layout_width="130dp"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:text="@string/Class1"
android:textSize="25sp" />
<TextView
android:layout_width="130dp"
android:layout_height="wrap_content"
android:text="@string/number1"
android:textSize="25sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/name1"
android:textSize="25sp" />
</LinearLayout>
<LinearLayout
android:layout_width="390dp"
android:layout_height="330dp"
android:orientation="horizontal">
<ListView
android:id="@+id/ListView"
android:paddingLeft="10dp"
android:layout_width="match_parent"
android:layout_height="match_parent">
</ListView>
</LinearLayout>
</LinearLayout>
</android.support.constraint.ConstraintLayout>
string.xml
<resources>
<string name="app_name">实验三——UI设计</string>
<string name="Class">班级:</string>
<string name="name">姓名:</string>
<string name="number">学号:</string>
<string name="add">添加</string>
<string name="Class1"> 班级</string>
<string name="name1">姓名</string>
<string name="number1">学号</string>
</resources>
这种写法利用listview和textview结合,更加流畅。
显示结果如下: