这是ListView
<LinearLayout
… >
<ListView
android:id="@+id/listView1" >
</ListView>
</LinearLayout>
和сell上的3项
<TextView
android:id="@+id/text1" />
<TextView
android:id="@+id/text2" />
<Button
android:id="@+id/button1"/>
这是代码
public class Spisok extends Activity {
private ArrayList<HashMap<String, Object>> Irr;
private static final String Form1 = "form1"; // Форма1
private static final String Form2 = "form2"; // Форма2
private static final String Form3 = "form3"; // Форма3
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_spisok);
setTitle("Irr");
ListView listView = (ListView) findViewById(R.id.listView1);
// создаем массив списков
Irr = new ArrayList<HashMap<String, Object>>();
HashMap<String, Object> hm;
hm = new HashMap<String, Object>();
hm.put(Form1, "1");
hm.put(Form2, "2");
hm.put(Form3, "3");
Irr.add(hm);
hm = new HashMap<String, Object>();
hm.put(Form1, "1");
hm.put(Form2, "2");
hm.put(Form3, "3");
Irr.add(hm);
SimpleAdapter adapter = new SimpleAdapter(this, Irr,
R.layout.list_item, new String[] { Form1, Form2, Form3 },
new int[] { R.id.text1, R.id.text2, R.id.text3 });
listView.setAdapter(adapter);
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<> arg0, View arg1, int arg2,
long arg3) {
Intent intent = new Intent(this, New.class);
intent.putExtra("arraylist", Irr);
startActivity
}
});
并且:
ArrayList<HashMap<String, String>> arl = (ArrayList<HashMap<String, String>>) getIntent().getSerializableExtra("arraylist");
TextView Info = (TextView)findViewById(R.id.text9);
Info.setText("view" +Irr); }
但这是错误的工作。当我使用它时,我在新的Activity
中拥有所有ArrayList intent.putExtra("arraylist", Irr);
我只需要“hm.put(Form3,”3“);” (在我的NewActivity中正确地只有“3”值)。 帮助我正确地组成。
答案 0 :(得分:0)
你有什么问题?目前尚不清楚,只是我认为你的Spisok活动中有一个按钮。因此,您需要在Button
方法中创建一个noCreate()
对象,如
Button button1 = (Button)findViewById(R.id.button1);
button1.setOnClickListener(new onClickListener() {
@Override
public void onClick (){
Intent intent = new Intent (this, SecondActivity.class );
startActivity(intent);
}
}
SecondActivity.class
是您的新活动。您需要使用IDE手动创建此Activity类,还需要在Manefist
文件中添加此Activity。您可以放置TextView text3
SecondActivity的布局文件。
答案 1 :(得分:0)
您必须使用方法putExtra(String key, String dataToTransfer)
将R.id.text3的文本放入您的意图中。
您的OnItemClickListener
可能如下所示:
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<> arg0, View arg1, int position,
long arg3) {
Intent intent = new Intent (this, SecondActivity.class );
intent.putExtra("key for my item 3", "put the text you want to transfer here")
startActivity(intent);
}
});
在新的Activity中,您可以获得这样的传输数据:
@Override
public void onCreate(Bundle savedInstanceState){
Intent intent = getIntent();
String transferedText = intent.getStringExtra("key for my item 3");
}
答案 2 :(得分:0)
你有一个自定义ListView(没有coustom listview你不能管理单行中的更多项目),每行有两个文本视图和一个按钮。如果用户单击该按钮,则打开,然后打开显示第二个文本视图的新活动
在你的适配器类的getView()方法中编写这段代码
@Override
public View getView(final int position, View convertView, ViewGroup parent)
{
View row = convertView;
Button button1 = (Button) convertView.findViewById(R.id.button1);
TextView text1 = (TextView)convertView.findViewById(R.id.textview1);
TextView text2 = (TextView)convertView.findViewById(R.id.textview2);
button1.setOnClickListener(new OnClickListener()
{
deleteButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent = new Intent (this, SecondActivity.class );
String text = text2.getText().toString();
intent.putExtra("name", "text");
startActivity(intent);
}
});
}
和SecondActivity编写此代码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.intent);
Textv = (TextView)findViewById(R.id.tv2);
Intent iin= getIntent();
Bundle b = iin.getExtras();
if(b!=null)
{
String j =(String) b.get("name");
Textv.setText(j);
}
}
希望这会对你有所帮助