2017-01-31 37 views
0

我有一个listview和一些检查选项。我想在点击一个按钮后将所有选中的项目传输到一个字符串数组中,这样我就可以使用Intent在其他类上使用它。我该怎么做?我已经搜索了一些答案,但它们都没有工作了me.`获取ListView中的选中项 - Android

public class MyClasses extends AppCompatActivity implements View.OnClickListener { 
public String[] Section1 = {"Bonilla, Abbie", "Hernando, Roland Joseph", "Ko, Kritofer", "Manaig, Kathleen", 
     "Olalia, Jerome", "Rosario, Kyle", "Sevilla, Karen", "Tancioco, Eron", "Villena, Mark"}; 
public String[] Section2 = {"Chavez, Stephanie", "Espana, Bren Alfred", "Faro, Ede", "Gonzales, Venice", 
     "Magora, Joshua James", "Roman, Jairah", "Ramirez, Stephanie", "Tiboli, Jamalul", "Torrazo, Nicole"}; 
public String[] Section3 = {"Arbonida, Caye Anne", "De Guzman, Patricia", "Escandor, Jennifer", "Marzan, Rann", 
     "Menorca, Paula", "Payofelin, Marlo", "Pimentel, Iris Coleen", "Queen, Elizabeth", "Unggoy, Monkey"}; 
public String[] Use = {}; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_my_classes); 
    int section = getIntent().getIntExtra("position", 20); 
    ShowStudents(section); 
    Button submit = (Button) findViewById(R.id.btn_Submit); 
    submit.setOnClickListener(this); 

} 


public void ShowStudents(int pos) { 

    if (pos == 0) Use = Section1; 
    else if (pos == 1) Use = Section2; 
    else if (pos == 2) Use = Section3; 
    ListAdapter ClassAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_checked, Use); 
    final ListView classlist = (ListView) findViewById(R.id.list_Students); 
    classlist.setAdapter(ClassAdapter); 

    classlist.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      CheckedTextView item = (CheckedTextView) view; 
      Toast.makeText(MyClasses.this, Use[position] + "IS PRESENT ", Toast.LENGTH_SHORT).show(); 
     } 
    }); 

} 

@Override 
public void onClick(View v) { 
    switch (v.getId()) { 
     case R.id.btn_Submit: 
     //transfer checked items 
} 

}}

+0

你可以定义一个ArrayList ,然后加上它就选 –

+0

请问你能解释一下怎么做吗?我是android编程的新手。谢谢ntaloventi –

回答

-1

内onItemClick方法使数组对托运的物品/字符串数组存储在sharepref并转到所需您要和检索共享偏好阵列屏幕...

感谢

+0

你总是使用SharedPreference来做这件事吗? –

+0

你也可以使用稀疏布尔数组的概念...否则sharepreference会更简单one..try它一次 – priyanka

+0

但它只是发送到另一个不是全局的活动? –

0

创建文件CustomAdapter.class,并把这个代码中:

public class CustomAdapter extends ArrayAdapter { 
    public CustomAdapter(Context context, int loyautId, ArrayList<String> list, String[] toCheck) { 
      super(context, loyautId, list); 
       if(toCheck!=null){ 
       this.toCheck =new ArrayList<String>(Arrays.asList(toCheck)); 
       } 
      } 

     @NonNull 
     @Override 
     public View getView(final int position, View convertView, ViewGroup parent) { 
      String item = getItem(position).toString(); 
      final CheckedTextView check = (CheckedTextView) convertView.findViewById(android.R.id.text1); 

      check.setText(getItem(position).toString());  

      if (toChcec!=null && toCheck.contains(item)) { 
       check.setChecked(true); 
      } 
      check.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View view) { 
        if (check.isChecked()) { 
         checkedList.remove(getItem(position)); 
        } else { 
         checkedList.add(getItem(position).toString()); 
        } 
       } 
      }); 
      return convertView; 
     } 

     public ArrayList<String> getCheckedList(){ 
      return checkedList; 
     } 

    } 

如何将其放置在代码:

CustomAdapter classAdapter = new CustomAdapter(this, android.R.layout.simple_list_item_checked, Use,option if you wont check item); 

如何得到检查列表:

classAdapter.getCheckedList() 

在您的代码示例:

public class MyClasses extends AppCompatActivity implements View.OnClickListener { 
     public String[] Section1 = {"Bonilla, Abbie", "Hernando, Roland Joseph", "Ko, Kritofer", "Manaig, Kathleen", 
       "Olalia, Jerome", "Rosario, Kyle", "Sevilla, Karen", "Tancioco, Eron", "Villena, Mark"}; 
     public String[] Section2 = {"Chavez, Stephanie", "Espana, Bren Alfred", "Faro, Ede", "Gonzales, Venice", 
       "Magora, Joshua James", "Roman, Jairah", "Ramirez, Stephanie", "Tiboli, Jamalul", "Torrazo, Nicole"}; 
     public String[] Section3 = {"Arbonida, Caye Anne", "De Guzman, Patricia", "Escandor, Jennifer", "Marzan, Rann", 
       "Menorca, Paula", "Payofelin, Marlo", "Pimentel, Iris Coleen", "Queen, Elizabeth", "Unggoy, Monkey"}; 
     public String[] Use = {}; 

    private ArrayList<String> myCheckedList; private **CustomAdapter myAdapter; 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_my_classes); 
      int section = getIntent().getIntExtra("position", 20); 
      ShowStudents(section); 
      Button submit = (Button) findViewById(R.id.btn_Submit); 
      submit.setOnClickListener(this); 
     //YEEEE i HAVE CHECED LIST TO SUBMIT !!! 
     myCheckedList = myAdapter.getCheckedList(); 
     } 


     public void ShowStudents(int pos) { 

      if (pos == 0) Use = Section1; 
      else if (pos == 1) Use = Section2; 
      else if (pos == 2) Use = Section3; 
      myAdapter = new CustomAdapter(this, android.R.layout.simple_list_item_checked, Use,null); 
      final ListView classlist = (ListView) findViewById(R.id.list_Students); 
      classlist.setAdapter(ClassAdapter); 

      classlist.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
       @Override 
       public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
        CheckedTextView item = (CheckedTextView) view; 
        Toast.makeText(MyClasses.this, Use[position] + "IS PRESENT ", Toast.LENGTH_SHORT).show(); 
       } 
      }); 

     } 

     @Override 
     public void onClick(View v) { 
      switch (v.getId()) { 
       case R.id.btn_Submit: 
       //transfer checked items 
     } 
+0

在什么部分的代码我会把CustomAdapter classAdapter?和classAdapter.getCheckedList()?谢谢! –

+0

编辑我的帖子,我认为现在很清楚 – Grzegorz

相关问题