小弟超级新人



如图所示 我想在点开item时出现图二内容(目前用图二只能添加item


以下是简陋的代码
mainactivity.java
public class MainActivity extends Activity implements View.OnClickListener {
private SimpleAdapter simpleAdapter;
private ArrayList<HashMap<String,String>> arrayList=new ArrayList<HashMap<String, String>>();
private ListView listView;
public TextView textView2;
public TextView textView3;
private Button button;
public boolean haha=false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button=(Button)findViewById(R.id.add);
button.setOnClickListener(this);
textView2=(TextView)findViewById(R.id.textView2);
textView3=(TextView)findViewById(R.id.textView3);
listView=(ListView)findViewById(R.id.listView);
HashMap<String,String> map=new HashMap<String,String>();
map.put("name","name");
map.put("numble","numble");
arrayList.add(map);
simpleAdapter=new SimpleAdapter(this,arrayList,R.layout.item,new String[]{"name","numble"},new int[]{R.id.textView2,R.id.textView3});
listView.setAdapter(simpleAdapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent=new Intent(MainActivity.this,Tiaozhuan.class);
startActivityForResult(intent, 100);
}
});
}
@Override
public void onClick(View v) {
Intent intent=new Intent(MainActivity.this,Tiaozhuan.class);
startActivityForResult(intent,100);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(20==resultCode)
{
String name=data.getExtras().getString("name");
String numble=data.getExtras().getString("numble");
HashMap<String,String> map=new HashMap<String,String>();
map.put("name",name);
map.put("numble",numble);
arrayList.add(map);
simpleAdapter.notifyDataSetChanged();
}
}
}
tiaozhuan.java
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tiaozhuan);
back=(Button)findViewById(R.id.back);
name=(EditText)findViewById(R.id.editText);
numble=(EditText)findViewById(R.id.editText2);
back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String sname=name.getText().toString();
String snumble=numble.getText().toString();
Intent data=new Intent();
if((!sname.equals(""))&&(!snumble.equals("")))
{
data.putExtra("name", sname);
data.putExtra("numble",snumble);
setResult(20, data);
}
finish();
}
});
}
}
------解决思路----------------------
不要用SimpleAdapter ,使用BaseAdapter, 在getview方法中对item控件的点击事件做处理,是否显示输入框之类的。
------解决思路----------------------
ListView 以后尽量使用BaseAdapter
------解决思路----------------------
使用SimpleAdapter可能满足不了你的需求
使用BaseAdapter, 在getview方法中对item控件的点击事件做处理,是否显示输入框之类的,大概是下面的代码的意思。
// 定义自己的适配器,注意getCount和getView方法
private class MyAdapter extends BaseAdapter {
@Override
public int getCount() {
// 这里我就返回10了,也就是一共有10项数据项
return 10;
}
@Override
public Object getItem(int arg0) {
return arg0;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// position就是位置从0开始,convertView是Spinner,ListView中每一项要显示的view
// 通常return 的view也就是convertView
// parent就是父窗体了,也就是Spinner,ListView,GridView了.
TextView mTextView = new TextView(getApplicationContext());
mTextView.setText("BaseAdapterDemo");
mTextView.setTextColor(Color.RED);
return mTextView;
}
}