Android 从列表视图开始时的控件复选标记:简单\u列表\u项目\u单个\u选项 我希望保留选中标记的信息,我尝试这样做的方式是通过控制一个选中标记在开始时是真是假
我尝试使用setItemChecked(I,true)将所有这些设置都设置为true,但它不起作用Android 从列表视图开始时的控件复选标记:简单\u列表\u项目\u单个\u选项 我希望保留选中标记的信息,我尝试这样做的方式是通过控制一个选中标记在开始时是真是假,android,listview,Android,Listview,我尝试使用setItemChecked(I,true)将所有这些设置都设置为true,但它不起作用 ArrayAdapter<String> mAdapter = new ArrayAdapter<String>(Main2Activity.this, android.R.layout.simple_list_item_single_choice, getResources().getStringArray(
ArrayAdapter<String> mAdapter = new ArrayAdapter<String>(Main2Activity.this,
android.R.layout.simple_list_item_single_choice,
getResources().getStringArray(R.array.Stigmate_P));
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
listView.setItemChecked(0,true);
listView.setItemChecked(1,true);
listView.setItemChecked(2,true);
ArrayAdapter mAdapter=新的ArrayAdapter(Main2Activity.this、,
android.R.layout.simple\u list\u item\u单选,
getResources().getStringArray(R.array.stumate_P));
listView.setChoiceMode(listView.CHOICE\u MODE\u MULTIPLE);
setItemChecked(0,true);
setItemChecked(1,true);
setItemChecked(2,true);
listView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父项、视图、int i、long id){
如果(Var[i]==2){
setItemChecked(i,true);
}
else if(Var[i]==1){
setItemChecked(i,false);
}
}
下面是我的listview的大部分java代码
public class Main2Activity extends AppCompatActivity {
public static int POSITION;
public static int Var[] = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
private Toolbar mActionBarToolbar;
ListView listView;
ImageView ImageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (POSITION == 0){
setContentView(R.layout.activity_main4);
mActionBarToolbar = (Toolbar) findViewById(R.id.toolbar_actionbar);
setSupportActionBar(mActionBarToolbar);
setSupportActionBar(mActionBarToolbar);
getSupportActionBar().setTitle(" ");}
if (POSITION == 1){
setContentView(R.layout.activity_main2);
mActionBarToolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(mActionBarToolbar);
getSupportActionBar().setTitle("Stigmate");
ImageView = (ImageView)findViewById(R.id.imageView2);
ImageView.setImageResource(R.drawable.r_stigmate);
listView = (ListView)findViewById(R.id.mainMenu2);
ArrayAdapter<String> mAdapter = new ArrayAdapter<String>(Main2Activity.this,
android.R.layout.simple_list_item_single_choice,
getResources().getStringArray(R.array.Stigmate_P));
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
listView.setItemChecked(0,true);
listView.setItemChecked(1,true);
listView.setItemChecked(2,true);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int i, long id) {
if (Var[i] == 2){
listView.setItemChecked(i,true);
}
else if (Var[i] == 1){
listView.setItemChecked(i,false);
}
Intent intent = new Intent(Main2Activity.this, Main3Activity.class);
intent.putExtra("CountryName",listView.getItemAtPosition(i).toString());
startActivity(intent);
int n = 0;
for (n= 0; n < 20 ; n++) {
if(i==n){
Main3Activity.POSITION3 = n;
}}
}
});
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
int pos, long id) {
if (Var[pos] == 1){
listView.setItemChecked(pos,true);
Var[pos] = 2;
}
else if (Var[pos] == 2){
listView.setItemChecked(pos,false);
Var[pos] = 1;
}
return true;
}
});
listView.setAdapter(mAdapter);
}
...
公共类Main2活动扩展了AppCompative活动{
公共静态位置;
公共静态int-Var[]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
专用工具栏mActionBarToolbar;
列表视图列表视图;
图像视图图像视图;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
如果(位置==0){
setContentView(R.layout.activity_main4);
mActionBarToolbar=(工具栏)findViewById(R.id.Toolbar\u actionbar);
设置支持操作栏(mActionBarToolbar);
设置支持操作栏(mActionBarToolbar);
getSupportActionBar().setTitle(“”;}
如果(位置==1){
setContentView(R.layout.activity_main2);
mActionBarToolbar=(工具栏)findViewById(R.id.Toolbar);
设置支持操作栏(mActionBarToolbar);
getSupportActionBar().setTitle(“标记”);
ImageView=(ImageView)findViewById(R.id.imageView2);
setImageResource(R.drawable.R_stimate);
listView=(listView)findViewById(R.id.mainMenu2);
ArrayAdapter mAdapter=新的ArrayAdapter(Main2Activity.this,
android.R.layout.simple\u list\u item\u单选,
getResources().getStringArray(R.array.stumate_P));
listView.setChoiceMode(listView.CHOICE\u MODE\u MULTIPLE);
setItemChecked(0,true);
setItemChecked(1,true);
setItemChecked(2,true);
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父项、视图、int i、long id){
如果(Var[i]==2){
setItemChecked(i,true);
}
else if(Var[i]==1){
setItemChecked(i,false);
}
意向意向=新意向(Main2Activity.this、Main3Activity.class);
intent.putExtra(“CountryName”,listView.getItemAtPosition(i.toString());
星触觉(意向);
int n=0;
对于(n=0;n<20;n++){
如果(i==n){
Main3活动位置3=n;
}}
}
});
setOnItemLongClickListener(新的AdapterView.OnItemLongClickListener(){
@凌驾
长单击(AdapterView arg0、视图arg1、,
内部位置,长id){
如果(变量[pos]==1){
listView.setItemChecked(pos,true);
Var[pos]=2;
}
否则如果(变量[pos]==2){
listView.setItemChecked(pos,false);
Var[pos]=1;
}
返回true;
}
});
setAdapter(mAdapter);
}
...
提前感谢。首先需要设置适配器,然后将可检查项设置为已检查 请检查注释布局是否正确 android.R.layout.simple\u list\u item\u多选不是android.R.layout.simple\u list\u item\u单选 试试下面的代码
public class Main2Activity extends AppCompatActivity {
public static int POSITION;
public static int Var[] = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
private Toolbar mActionBarToolbar;
ListView listView;
ImageView ImageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (POSITION == 0){
setContentView(R.layout.activity_main4);
mActionBarToolbar = (Toolbar) findViewById(R.id.toolbar_actionbar);
setSupportActionBar(mActionBarToolbar);
setSupportActionBar(mActionBarToolbar);
getSupportActionBar().setTitle(" ");}
if (POSITION == 1){
setContentView(R.layout.activity_main2);
mActionBarToolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(mActionBarToolbar);
getSupportActionBar().setTitle("Stigmate");
ImageView = (ImageView)findViewById(R.id.imageView2);
ImageView.setImageResource(R.drawable.r_stigmate);
listView = (ListView)findViewById(R.id.mainMenu2);
// make note : android.R.layout.simple_list_item_multiple_choice not android.R.layout.simple_list_item_single_choice
ArrayAdapter<String> mAdapter = new ArrayAdapter<String>(Main2Activity.this,
android.R.layout.simple_list_item_multiple_choice,
getResources().getStringArray(R.array.Stigmate_P));
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
// add this lines after you set the adapter
/*listView.setItemChecked(0,true);
listView.setItemChecked(1,true);
listView.setItemChecked(2,true);*/
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int i, long id) {
if (Var[i] == 2){
listView.setItemChecked(i,true);
}
else if (Var[i] == 1){
listView.setItemChecked(i,false);
}
Intent intent = new Intent(Main2Activity.this, Main3Activity.class);
intent.putExtra("CountryName",listView.getItemAtPosition(i).toString());
startActivity(intent);
int n = 0;
for (n= 0; n < 20 ; n++) {
if(i==n){
Main3Activity.POSITION3 = n;
}}
}
});
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
int pos, long id) {
if (Var[pos] == 1){
listView.setItemChecked(pos,true);
Var[pos] = 2;
}
else if (Var[pos] == 2){
listView.setItemChecked(pos,false);
Var[pos] = 1;
}
return true;
}
});
listView.setAdapter(mAdapter);
// here you should set checked items
listView.setItemChecked(0,true);
listView.setItemChecked(1,true);
listView.setItemChecked(2,true);
}
公共类Main2活动扩展了AppCompative活动{
公共静态位置;
公共静态int-Var[]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
专用工具栏mActionBarToolbar;
列表视图列表视图;
图像视图图像视图;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
如果(位置==0){
setContentView(R.layout.activity_main4);
mActionBarToolbar=(工具栏)findViewById(R.id.Toolbar\u actionbar);
设置支持操作栏(mActionBarToolbar);
设置支持操作栏(mActionBarToolbar);
getSupportActionBar().setTitle(“”;}
如果(位置==1){
setContentView(R.layout.activity_main2);
mActionBarToolbar=(工具栏)findViewById(R.id.Toolbar);
设置支持操作栏(mActionBarToolbar);
getSupportActionBar().setTitle(“标记”);
ImageView=(ImageView)findViewById(R.id.imageView2);
setImageResource(R.drawable.R_stimate);
listView=(listView)findViewById(R.id.mainMenu2);
//注意:android.R.layout.simple\u list\u item\u多选项而非android.R.layout.simple\u list\u item\u单选
ArrayAdapter mAdapter=新的ArrayAdapter(Main2Activity.this,
android.R.layout.simple\u list\u item\u多选,
getResources().getStringArray(R.array.stumate_P));
listView.setChoiceMode(listView.CHOICE\u MODE\u MULTIPLE);
//设置适配器后添加此行
/*setItemChecked(0,true);
setItemChecked(1,true);
setItemChecked(2,true)*/
listView.setO
public class Main2Activity extends AppCompatActivity {
public static int POSITION;
public static int Var[] = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
private Toolbar mActionBarToolbar;
ListView listView;
ImageView ImageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (POSITION == 0){
setContentView(R.layout.activity_main4);
mActionBarToolbar = (Toolbar) findViewById(R.id.toolbar_actionbar);
setSupportActionBar(mActionBarToolbar);
setSupportActionBar(mActionBarToolbar);
getSupportActionBar().setTitle(" ");}
if (POSITION == 1){
setContentView(R.layout.activity_main2);
mActionBarToolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(mActionBarToolbar);
getSupportActionBar().setTitle("Stigmate");
ImageView = (ImageView)findViewById(R.id.imageView2);
ImageView.setImageResource(R.drawable.r_stigmate);
listView = (ListView)findViewById(R.id.mainMenu2);
// make note : android.R.layout.simple_list_item_multiple_choice not android.R.layout.simple_list_item_single_choice
ArrayAdapter<String> mAdapter = new ArrayAdapter<String>(Main2Activity.this,
android.R.layout.simple_list_item_multiple_choice,
getResources().getStringArray(R.array.Stigmate_P));
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
// add this lines after you set the adapter
/*listView.setItemChecked(0,true);
listView.setItemChecked(1,true);
listView.setItemChecked(2,true);*/
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int i, long id) {
if (Var[i] == 2){
listView.setItemChecked(i,true);
}
else if (Var[i] == 1){
listView.setItemChecked(i,false);
}
Intent intent = new Intent(Main2Activity.this, Main3Activity.class);
intent.putExtra("CountryName",listView.getItemAtPosition(i).toString());
startActivity(intent);
int n = 0;
for (n= 0; n < 20 ; n++) {
if(i==n){
Main3Activity.POSITION3 = n;
}}
}
});
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
int pos, long id) {
if (Var[pos] == 1){
listView.setItemChecked(pos,true);
Var[pos] = 2;
}
else if (Var[pos] == 2){
listView.setItemChecked(pos,false);
Var[pos] = 1;
}
return true;
}
});
listView.setAdapter(mAdapter);
// here you should set checked items
listView.setItemChecked(0,true);
listView.setItemChecked(1,true);
listView.setItemChecked(2,true);
}