2012-08-12 7 views
0

다음 코드를 실행하면 임의의 문자열 (예 : [email protected])이 나옵니다. 추가 된 체크 박스를 클릭 할 수 없습니다.안드로이드의 목록보기에 체크 박스 추가하기

이 내 자바 코드 :

public class Rough1Activity extends ListActivity { 
    private ArrayList<String> listItems = new ArrayList<String>(); 
    private ArrayAdapter<String> adapter; 
    private EditText taskNameEditText; 

    @Override 
    public void onCreate(Bundle icicle) { 
     super.onCreate(icicle); 
     setContentView(R.layout.main); 

     // I like this layout, but it's your choice 
     adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_checked, listItems); 
     //adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, listItems); 
     setListAdapter(adapter); 

     // I guessed that you want a multiple choice list from your first layout choice. This is optional, you can remove it. 
     ListView listView = getListView(); 
     listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 

     // Here you only need to initialize taskNameEditText once 
     taskNameEditText = (EditText) findViewById(R.id.TaskName); 
    } 

    public void addItems(View v) { 
     // Add the current string in the EditText to the ListView 
     adapter.add(taskNameEditText.getText().toString()); 
    } 
} 

당신에게 : 당신은 정수 또는 문자열의 배열을 추가로 체크 박스를 표시하려고

package com.srk.android.rough1; 
import java.util.ArrayList; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.ArrayAdapter; 
import android.widget.CheckBox; 
import android.widget.EditText; 
import android.app.ListActivity; 


public class Rough1Activity extends ListActivity { 
    ArrayList<CheckBox> listItems=new ArrayList<CheckBox>(); 
    ArrayAdapter<CheckBox> adapter; 
    private EditText taskNameEditText; 

    @Override 
    public void onCreate(Bundle icicle) { 
     super.onCreate(icicle); 
     setContentView(R.layout.main); 
     adapter=new ArrayAdapter<CheckBox>(this, android.R.layout.simple_list_item_multiple_choice, listItems); 
     setListAdapter(adapter); 
    } 

    public void addItems(View v) { 
     taskNameEditText=(EditText)findViewById(R.id.TaskName); 
     String taskName=taskNameEditText.getText().toString(); 
     CheckBox cb=new CheckBox(this); 
     cb.setText(taskName); 
     listItems.add(cb); 
     adapter.notifyDataSetChanged(); 
    } 
} 

답변

0

... 난 다른 접근 방식을 제안 문자열리스트를 가지고 체크 박스로 문자열을 표시하고 싶습니다. ArrayList와 ArrayAdapter를 String 하위 유형으로 변경하여 레이아웃과 리플렉션을 구현했습니다. android.R.layout.simple_list_item_checked에 자체 Checkbox 기능이 추가되었습니다. 이제 사용자는 확인 가능한 행이있는 ListView에 입력 한 텍스트를 볼 수 있습니다.

희망이 도움이됩니다.

관련 문제