不知道这样写,有什么问题,总之是没有保存设置的参数。参数设置后,退出来再进去,还是默认的设置。import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;import android.annotation.TargetApi;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnKeyListener;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.Spinner;
import android.widget.TextView;public class MainActivity extends Activity {
private ListView mListView;
private List<Map<String, Object>> data;
private ArrayAdapter<String> adapter;
private ArrayAdapter<String> adapter1;
private String[] m;
private String[] arrMenuItemName;
private String[] arrNumber;
CustomListAdapter listAdapter; private final String PREFERENCES_NAME="survey";
public static final String POS = "NAME";
public static final String FIRST_RUN = "first";
boolean first;
@Override
public void onCreate(Bundle savedInstanceStated) {
super.onCreate(savedInstanceStated);
setContentView(R.layout.list_view);
m = this.getResources().getStringArray(R.array.switcher);
arrMenuItemName= this.getResources().getStringArray(R.array.menu_array);
arrNumber = this.getResources().getStringArray(R.array.number_array);
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, m);
adapter1 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, arrNumber);
mListView = (ListView) findViewById(R.id.list_view_id);
data = getData();
listAdapter = new CustomListAdapter();
mListView.setAdapter(listAdapter);
mListView.setOnKeyListener(new OnKeyListener() { public boolean onKey(View arg0, int arg1, KeyEvent arg2) {
// TODO Auto-generated method stub
return false;
}
});
}
public boolean onKeyDown(int keyCode, KeyEvent event){
// System.out.println("FFFFFFFFFF "+ mListView.getSelectedItemPosition());
int pos = mListView.getSelectedItemPosition(); if (pos >= 0) {
int i = 0;
if (event.getAction() == KeyEvent.ACTION_DOWN) {
switch (keyCode) {
case KeyEvent.KEYCODE_DPAD_LEFT:
i = (Integer) data.get(pos).get("sss");
i = i - 1;
if (i < 0)
{
switch(pos){
case 0:
i = m.length - 1;
break;
case 1:
i = m.length - 1;
break;
case 2:
i = arrNumber.length - 1;
break;
}
}
data.get(pos).put("sss", i);
listAdapter.notifyDataSetChanged();
return true; case KeyEvent.KEYCODE_DPAD_RIGHT:
i = (Integer) data.get(pos).get("sss");
i = i + 1;
switch(pos)
{
case 0:
if (i >= m.length) i = 0;
break;
case 1:
if (i >= m.length) i = 0;
break;
case 2:
if (i >= arrNumber.length) i = 0;
break;
}
data.get(pos).put("sss", i);
listAdapter.notifyDataSetChanged();
return true;
}
}
}
return super.onKeyDown(keyCode, event);
}
private List<Map<String, Object>> getData() {
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Map<String, Object> map;
for(int i = 0; i< arrMenuItemName.length;i++){
map = new HashMap<String, Object>();
map.put("menuText", arrMenuItemName[i]);
map.put("leftOfImage", R.drawable.gray_l);
map.put("rightOfImage", R.drawable.gray_r);
map.put("sss", 0);
list.add(map);
}
return list;
} class CustomListAdapter extends BaseAdapter { public Object getItem(int arg0) {
// TODO Auto-generated method stub
return arg0;
} public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
} public int getCount() {
// TODO Auto-generated method stub
return data.size();
// return 3;
} @TargetApi(11)
public View getView(int position, View convertView, android.view.ViewGroup parent) {
final ViewHolder viewHolder;
int widgetPosition = 0;
int flag = 0;
if (convertView == null) {
viewHolder = new ViewHolder();
// convertView = mInflater.inflate(R.layout.item_custom, null);
convertView = getLayoutInflater().inflate(R.layout.item_custom, null);
viewHolder.leftOfImage = (ImageView) convertView.findViewById(R.id.menu_image_id);
viewHolder.rightOfImage = (ImageView) convertView.findViewById(R.id.right_image_id);
viewHolder.menuText = (TextView) convertView.findViewById(R.id.menu_text_id);
viewHolder.mSpinner = (Spinner) convertView.findViewById(R.id.menu_spinner_id); SharedPreferences preferences = getSharedPreferences(PREFERENCES_NAME, Activity.MODE_PRIVATE);
first = preferences.getBoolean(FIRST_RUN, true);
// System.out.println("i--->itemPosition "+itemPosition);
if(first){
flag = 1;
widgetPosition = preferences.getInt(POS, 1);
}
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
if(flag == 1){
flag = 0;
}
else{
widgetPosition =(Integer) data.get(position).get("sss");
}
viewHolder.menuText.setText((String) data.get(position).get("menuText"));
viewHolder.leftOfImage.setBackgroundResource((Integer) data.get(position).get("leftOfImage"));
viewHolder.rightOfImage.setBackgroundResource((Integer) data.get(position).get("rightOfImage"));
switch(position){
case 0:
viewHolder.mSpinner.setAdapter(adapter);
viewHolder.mSpinner.setSelection(widgetPosition);
break;
case 1:
viewHolder.mSpinner.setAdapter(adapter);
viewHolder.mSpinner.setSelection(widgetPosition);
break;
case 2:
viewHolder.mSpinner.setAdapter(adapter1);
viewHolder.mSpinner.setSelection(widgetPosition);
break;
}
return convertView;
}
protected void onStop() {
//获得SharedPreferences对象
SharedPreferences MyPreferences = getSharedPreferences(PREFERENCES_NAME, Activity.MODE_PRIVATE);
//获得SharedPreferences.Editor
SharedPreferences.Editor editor = MyPreferences.edit();
//保存组件中的值
editor.putInt(POS, 0);
editor.putBoolean(FIRST_RUN, false);
//提交保存的结果
editor.commit();
}
public class ViewHolder {
public TextView menuText;
public ImageView leftOfImage;
public Spinner mSpinner;
public ImageView rightOfImage;
}
}
}
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;import android.annotation.TargetApi;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnKeyListener;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.Spinner;
import android.widget.TextView;public class MainActivity extends Activity {
private ListView mListView;
private List<Map<String, Object>> data;
private ArrayAdapter<String> adapter;
private ArrayAdapter<String> adapter1;
private String[] m;
private String[] arrMenuItemName;
private String[] arrNumber;
CustomListAdapter listAdapter; private final String PREFERENCES_NAME="survey";
public static final String POS = "NAME";
public static final String FIRST_RUN = "first";
boolean first;
@Override
public void onCreate(Bundle savedInstanceStated) {
super.onCreate(savedInstanceStated);
setContentView(R.layout.list_view);
m = this.getResources().getStringArray(R.array.switcher);
arrMenuItemName= this.getResources().getStringArray(R.array.menu_array);
arrNumber = this.getResources().getStringArray(R.array.number_array);
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, m);
adapter1 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, arrNumber);
mListView = (ListView) findViewById(R.id.list_view_id);
data = getData();
listAdapter = new CustomListAdapter();
mListView.setAdapter(listAdapter);
mListView.setOnKeyListener(new OnKeyListener() { public boolean onKey(View arg0, int arg1, KeyEvent arg2) {
// TODO Auto-generated method stub
return false;
}
});
}
public boolean onKeyDown(int keyCode, KeyEvent event){
// System.out.println("FFFFFFFFFF "+ mListView.getSelectedItemPosition());
int pos = mListView.getSelectedItemPosition(); if (pos >= 0) {
int i = 0;
if (event.getAction() == KeyEvent.ACTION_DOWN) {
switch (keyCode) {
case KeyEvent.KEYCODE_DPAD_LEFT:
i = (Integer) data.get(pos).get("sss");
i = i - 1;
if (i < 0)
{
switch(pos){
case 0:
i = m.length - 1;
break;
case 1:
i = m.length - 1;
break;
case 2:
i = arrNumber.length - 1;
break;
}
}
data.get(pos).put("sss", i);
listAdapter.notifyDataSetChanged();
return true; case KeyEvent.KEYCODE_DPAD_RIGHT:
i = (Integer) data.get(pos).get("sss");
i = i + 1;
switch(pos)
{
case 0:
if (i >= m.length) i = 0;
break;
case 1:
if (i >= m.length) i = 0;
break;
case 2:
if (i >= arrNumber.length) i = 0;
break;
}
data.get(pos).put("sss", i);
listAdapter.notifyDataSetChanged();
return true;
}
}
}
return super.onKeyDown(keyCode, event);
}
private List<Map<String, Object>> getData() {
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Map<String, Object> map;
for(int i = 0; i< arrMenuItemName.length;i++){
map = new HashMap<String, Object>();
map.put("menuText", arrMenuItemName[i]);
map.put("leftOfImage", R.drawable.gray_l);
map.put("rightOfImage", R.drawable.gray_r);
map.put("sss", 0);
list.add(map);
}
return list;
} class CustomListAdapter extends BaseAdapter { public Object getItem(int arg0) {
// TODO Auto-generated method stub
return arg0;
} public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
} public int getCount() {
// TODO Auto-generated method stub
return data.size();
// return 3;
} @TargetApi(11)
public View getView(int position, View convertView, android.view.ViewGroup parent) {
final ViewHolder viewHolder;
int widgetPosition = 0;
int flag = 0;
if (convertView == null) {
viewHolder = new ViewHolder();
// convertView = mInflater.inflate(R.layout.item_custom, null);
convertView = getLayoutInflater().inflate(R.layout.item_custom, null);
viewHolder.leftOfImage = (ImageView) convertView.findViewById(R.id.menu_image_id);
viewHolder.rightOfImage = (ImageView) convertView.findViewById(R.id.right_image_id);
viewHolder.menuText = (TextView) convertView.findViewById(R.id.menu_text_id);
viewHolder.mSpinner = (Spinner) convertView.findViewById(R.id.menu_spinner_id); SharedPreferences preferences = getSharedPreferences(PREFERENCES_NAME, Activity.MODE_PRIVATE);
first = preferences.getBoolean(FIRST_RUN, true);
// System.out.println("i--->itemPosition "+itemPosition);
if(first){
flag = 1;
widgetPosition = preferences.getInt(POS, 1);
}
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
if(flag == 1){
flag = 0;
}
else{
widgetPosition =(Integer) data.get(position).get("sss");
}
viewHolder.menuText.setText((String) data.get(position).get("menuText"));
viewHolder.leftOfImage.setBackgroundResource((Integer) data.get(position).get("leftOfImage"));
viewHolder.rightOfImage.setBackgroundResource((Integer) data.get(position).get("rightOfImage"));
switch(position){
case 0:
viewHolder.mSpinner.setAdapter(adapter);
viewHolder.mSpinner.setSelection(widgetPosition);
break;
case 1:
viewHolder.mSpinner.setAdapter(adapter);
viewHolder.mSpinner.setSelection(widgetPosition);
break;
case 2:
viewHolder.mSpinner.setAdapter(adapter1);
viewHolder.mSpinner.setSelection(widgetPosition);
break;
}
return convertView;
}
protected void onStop() {
//获得SharedPreferences对象
SharedPreferences MyPreferences = getSharedPreferences(PREFERENCES_NAME, Activity.MODE_PRIVATE);
//获得SharedPreferences.Editor
SharedPreferences.Editor editor = MyPreferences.edit();
//保存组件中的值
editor.putInt(POS, 0);
editor.putBoolean(FIRST_RUN, false);
//提交保存的结果
editor.commit();
}
public class ViewHolder {
public TextView menuText;
public ImageView leftOfImage;
public Spinner mSpinner;
public ImageView rightOfImage;
}
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货