新手問題在這裏。所以即時通訊嘗試將標題從1stPage listview傳遞給2ndPage EditText,這意味着如果在1stPage上點擊Title1,2ndPage editText也會顯示Title1。香港專業教育學院瞭解有關額外的意圖,但我不知道如何從列表視圖中獲取數據。先進的tqvm。如何將數據從listview傳遞到另一個活動頁面?
1.MainActivity.java
public class MainActivity extends AppCompatActivity{
ListView l1;
String[] t1={"TITLE 1","TITLE 2"};
String[] d1={"Detail 1","Detail 2"};
String[] s1={"Content 1", "Content 2"};
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView) findViewById(R.id.title);
l1=(ListView)findViewById(R.id.list);
l1.setAdapter(new dataListAdapter(t1, d1, s1));
}
class dataListAdapter extends BaseAdapter {
String[] Title, Detail, Content;
dataListAdapter() {
Title = null;
Detail = null;
Content=null;
}
public dataListAdapter(String[] text, String[] text1, String[] text3) {
Title = text;
Detail = text1;
Content = text3;
}
public int getCount() {
// TODO Auto-generated method stub
return Title.length;
}
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = getLayoutInflater();
View row;
row = inflater.inflate(R.layout.custom, parent, false);
final TextView title, detail, detail2;
title = (TextView) row.findViewById(R.id.title);
detail = (TextView) row.findViewById(R.id.detail);
detail2 = (TextView) row.findViewById(R.id.detail2);
title.setText(Title[position]);
detail.setText(Detail[position]);
detail2.setText(Content[position]);
l1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String selected = title.getText().toString();
Intent i = new Intent(getApplicationContext(), Main2Activity.class);
i.putExtra("name", selected);
startActivity(i);
}
});
return (row);
}
}
}
2.Main2Activity.java
公共類Main2Activity擴展AppCompatActivity {
EditText editText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
editText = (EditText)findViewById(R.id.et);
Intent in = getIntent();
String name = in.getStringExtra(("name"));
editText.setText(name);
}
}
OO。我試過了。 1,我使用String selected = title.getText()。toString(),但由於「title」是在getView()方法中聲明的,所以我不能訪問它。 –
嘗試'字符串selected = t1 [position];'.... – ELITE
然後我試圖宣佈textView =(TextView)findViewById(R.id.title);並使用String selected = textView.getText()。toString(),但這也不起作用。也許我不明白的基本概念,因爲即時通訊仍然是新的android。 –