我正在處理測驗應用程序。它包含兩種類型的測試。 第一個測試包含固定3個選項的問題。 * 第二個測試包含問題,但選項不固定。即基於問題的選項可以是4或5或6。 * 測試結束後,我需要顯示評論頁面。這裏是與固定選項第一類測試的瀏覽頁面代碼(Review頁面應該包含在那個時候會顯示測試問題)如何在android的列表視圖中動態顯示textviews?
我的代碼:
Review.java
public class Review extends Activity {
static ArrayList selectedoptionids = Test1.listarray;
static ArrayList<ArrayList<String>> questionslist = Test2.stringList1;
static ArrayList<ArrayList<String>> alloptionlist = Test2.optionstablelist;
static ArrayList<ArrayList<String>> all = new ArrayList<ArrayList<String>>();
ListView list;
Button next;
String op1, op2, op3, op4, op5;
ArrayList<String> arr1;
ArrayList<String> arr2;
int a, i;
static int k = 0;
static int p = 1;
static List<mainlist> entirelist = new ArrayList<mainlist>();
String quest;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.review);
list = (ListView) findViewById(R.id.listlist);
View header = getLayoutInflater().inflate(
R.layout.listview_header_text, null);
list.addHeaderView(header, null, false);
View footerView = getLayoutInflater().inflate(
R.layout.listview_footer_text, null);
list.addFooterView(footerView, null, false);
next = (Button) findViewById(R.id.next);
eachquestion();
lvAdapter adapter = new lvAdapter(this, entirelist) {
public boolean areAllItemsEnabled() {
return false;
}
public boolean isEnabled(int position) {
return false;
}
};
list.setAdapter(adapter);
}
public void eachquestion() {
arr1 = new ArrayList<String>();
for (i = p - 1; i < p + 3; i++) {
arr1 = questionslist.get(i);
arr2 = new ArrayList<String>();
for (int j = 0; j < 5; j++) {
arr2 = alloptionlist.get(0);
if (j == 0)
op1 = arr2.get(2);
else if (j == 1)
op2 = arr2.get(2);
else if (j == 2)
op3 = arr2.get(2);
}
}
entirelist.add(new mainlist(quest, op1, op2, op3));
}
}
}
mainlist.java
public class mainlist {
String question,option1,option2,option3;
public mainlist(String question,String option1,String option2,String option3) {
super();
this.question = question;
this.option1 = option1;
this.option2= option2;
this.option3 = option3;
}
public String getquestion() {
return question;
}
public void setquestion(String question) {
this.question = question;
}
public String getoption1() {
return option1;
}
public void setoption1(String option1) {
this.option1 = option1;
}
public String getoption2() {
return option2;
}
public void setoption2(String option2) {
this.option2 = option2;
}
public String getoption3() {
return option3;
}
public void setoption3(String option3) {
this.option3 = option3;
}
}
lvAdapter.java
public class lvAdapter extends BaseAdapter implements OnClickListener {
private Context context;
List<mainlist> list11 = Review.entirelist;
public lvAdapter(Context context, List<mainlist> list11) {
this.context = context;
this.list11 = list11 ;
}
public int getCount() {
return list11.size();
}
public Object getItem(int position) {
return list11.get(position);
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup viewGroup) {
mainlist inst = list11.get(position);
if (convertView == null)
{
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.reviewrow, null);
}
TextView question = (TextView) convertView.findViewById(R.id.textView2);
tvPhone.setText(inst.getquestion());
TextView option1 = (TextView) convertView.findViewById(R.id.op1);
option1.setText(inst.getoption1());
TextView option2 = (TextView) convertView.findViewById(R.id.op2);
option2.setText(inst.getoption2());
TextView option3 = (TextView) convertView.findViewById(R.id.op3);
option3.setText(inst.getoption3());
return convertView;
}
@Override
public void onClick(View v) {
}
}
現在我的問題是第一次測試,因爲我們知道的期權數量是3個,所以我已經寫了1個問題的setter和getter方法和3個選項,它是工作精細。但是對於第二種類型的測試,我如何編寫mainlist.java類來爲未知數量的選項生成setter和getter方法。
請幫我對此...我掙扎了這一點,因爲3天....
在此先感謝...
你好感謝你......我會嘗試這樣的,會盡快給您 – RaagaSudha 2012-03-02 09:52:55
您好我已經做了相同的正如你告訴....當我添加textview convertView像convertView.add(optionTextView); 它顯示錯誤..我可以如何解決這個問題? – RaagaSudha 2012-03-02 10:48:19
實際上'convertView'是'View',它不能在裏面添加'View'。將其轉換爲'LinearLayout'或'RelativeLayout'或任何您在'reviewrow.xml'中作爲根元素使用的內容 – 2012-03-02 11:08:07