基于ListView的用法项目更改
一、添加一个按钮用于实现跳转
二、新建一个活动用于添加或编辑内容
三、创建添加事件
四、创建编辑事件
一、添加按钮在activity_main中添加一个按钮用于活动跳转
二、新建一个活动
右击 com.example.listview ---- new ---- Activity ---- Empty Activity
取名为 activity_new_redact
在新建的活动布局文件中添加文本框和按钮
三、创建添加事件
首先在 activity_new_redact 中获取参数
public class activity_new_redact extends AppCompatActivity {
Intent intent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_new_redact);
EditText et_redact_name = findViewById(R.id.ET_redact_name);
EditText et_redact_introduce = findViewById(R.id.ET_redact_introduce);
Button btn_redact_add = findViewById(R.id.redact_add);
Button btn_redact_cancel =findViewById(R.id.redact_cancel);
intent = getIntent();
String name=intent.getStringExtra("name");
String introduce = intent.getStringExtra("introduce");
et_redact_name.setText(name);
et_redact_introduce.setText(introduce);
btn_redact_add.setonClickListener(new View.onClickListener() {
@Override
public void onClick(View view) {
intent.putExtra("name",et_redact_name.getText().toString());
intent.putExtra("introduce",et_redact_introduce.getText().toString());
setResult(RESULT_OK,intent);
finish();
}
});
}
然后在Main Activity 中修改单击事件
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initCat();
adapter = new CatAdapter(MainActivity.this, R.layout.content_view, CatList);
ListView listView = (ListView) findViewById(R.id.list_view);
listView.setAdapter(adapter);
listView.setonItemClickListener(new AdapterView.onItemClickListener() {
@Override
public void onItemClick(AdapterView> adapterView, View view, int i, long id) {
Cat cat = CatList.get(i);
catposition=i;
String name = cat.getName();
String introduce = cat.getText();
Intent intent = new Intent(MainActivity.this, activity_new_redact.class);
intent.putExtra("name",name);
intent.putExtra("introduce",introduce);
startActivityForResult(intent, 2);
}
});
}
最后在重写一个 onActivityResult 来判断控件传回来的参数
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case 1:
if (resultCode == RESULT_OK) {
String name = data.getStringExtra("name");
String introduce = data.getStringExtra("introduce");
if (name.equals("") || introduce.equals(""))
return;
else {
Cat cat = new Cat(name, introduce, R.drawable.cat_f_pic);
CatList.add(cat);
adapter.notifyDataSetChanged();
}
}
break;
}
四、添加编辑事件
在 Main Activity 中添加判断
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case 1:
if (resultCode == RESULT_OK) {
String name = data.getStringExtra("name");
String introduce = data.getStringExtra("introduce");
if (name.equals("") || introduce.equals(""))
return;
else {
Cat cat = new Cat(name, introduce, R.drawable.cat_f_pic);
CatList.add(cat);
adapter.notifyDataSetChanged();
}
}
break;
case 2:
if (resultCode == RESULT_OK) {
String name = data.getStringExtra("name");
String introduce = data.getStringExtra("introduce");
if (name.equals("") || introduce.equals(""))
return;
else {
Cat cat = new Cat(name,introduce,CatList.get(catposition).getId());
CatList.set(catposition,cat);
adapter.notifyDataSetChanged();
}
}
break;
}
}
五、为返回按钮添加事件
在 activity_new_redact 中添加
btn_redact_cancel.setonClickListener(new View.onClickListener() {
@Override
public void onClick(View view) {
finish();
}
});



