對於ListView
(我們可以在其中查找列表視圖的活動以及EditText
)我使用的是AdapterView
。如何從意圖視圖傳遞意圖附加信息Android
當我們點擊ListView
我們去的第二個活動,我想發送所選項目作爲額外的數據在intent
。這個數據,那麼將在EditText
我試過這段代碼,但它似乎沒有工作,它總是顯示EditText
的默認值。
這裏是適配器視圖的代碼:
public class adapterq extends ArrayAdapter<Questionaire> implements OnClickListener {
Bitmap image;
EditText name;
public adapterq(Context context, ArrayList<Questionaire> questionaires) {
super(context, 0, questionaires);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// Get the data item for this position
final Questionaire c = getItem(position);
// Check if an existing view is being reused, otherwise inflate the view
if (convertView == null) {
convertView = LayoutInflater.from(getContext()).inflate(R.layout.customquest, parent, false);
}
View convertView2 = LayoutInflater.from(getContext()).inflate(R.layout.activity_main, parent, false);
TextView q = (TextView) convertView.findViewById(R.id.textView1);
name = (EditText) convertView2.findViewById(R.id.editText1);
q.setText(c.getLabel());
convertView.setOnClickListener(this);
return convertView;
}
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setClass(getContext(), Questions.class);
intent.putExtra("name", name.getText().toString());
getContext().startActivity(intent);
}
}
這裏是主要活動的XML代碼:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.orange.v1.MainActivity" >
<ListView
android:id="@+id/listView1"
android:layout_width="270dp"
android:layout_height="250dp"
android:layout_alignLeft="@+id/textView1"
android:layout_below="@+id/textView1"
android:isScrollContainer="false"
android:layout_marginTop="16dp" >
</ListView>
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView1"
android:layout_alignParentTop="true"
android:layout_marginTop="18dp"
android:text="User Identifier :"
android:textStyle="bold" />
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView2"
android:layout_below="@+id/textView2"
android:layout_marginTop="16dp"
android:text="Yass"
android:ems="10" >
<requestFocus />
</EditText>
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/editText1"
android:layout_marginLeft="21dp"
android:layout_marginTop="36dp"
android:text="Questionaire Choice"
android:textStyle="bold" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/listView1"
android:layout_below="@+id/listView1"
android:layout_marginTop="26dp"
android:text="Select a category to start playing" />
隨着視圖的屏幕截圖:
我得到執行NullPointerException異常 – 2015-03-02 10:07:39
當@ Strange90錯誤:看到我的編輯答案現在它會工作。以前的邏輯不工作,因爲EditText在'convertView2'裏面,但是點擊'convertView'的監聽器,然後onClick方法視圖參數返回'convertView'而不是convertView2 – 2015-03-02 10:12:31
沒有錯誤,但總是通過EditText中的默認文本 – 2015-03-02 10:19:06