Android 如何将asynk任务中的arraylist值设置为其他方法
我想将asynk任务方法中的memberlist值设置为onresume方法,但我得到的是空值。我如何获得该值Android 如何将asynk任务中的arraylist值设置为其他方法,android,Android,我想将asynk任务方法中的memberlist值设置为onresume方法,但我得到的是空值。我如何获得该值 String.xml <?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">Android Alphabetic IndexBar Scroller</string> <string-array name="alphab
String.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Android Alphabetic IndexBar Scroller</string>
<string-array name="alphabtes_array">
<item>A</item>
<item>B</item>
<item>C</item>
<item>D</item>
<item>E</item>
<item>F</item>
<item>G</item>
<item>H</item>
<item>I</item>
<item>J</item>
<item>K</item>
<item>L</item>
<item>M</item>
<item>N</item>
<item>O</item>
<item>P</item>
<item>Q</item>
<item>R</item>
<item>S</item>
<item>T</item>
<item>U</item>
<item>V</item>
<item>W</item>
<item>X</item>
<item>Y</item>
<item>Z</item>
</string-array>
<string-array name="base_array">
<item >Alphabets</item>
<item >Apple</item>
<item >Airplane</item>
<item >Banana</item>
<item >Boy</item>
<item >Bicycle</item>
<item >Car</item>
<item >Carrot</item>
<item >Dog</item>
<item >Donkey</item>
<item >Flight</item>
<item >Flower</item>
<item >Hover</item>
<item >Howard</item>
<item >Holland</item>
<item >Hug</item>
<item >House</item>
<item >Hallow</item>
<item >Icecream</item>
<item >Jug</item>
<item >Jassmine</item>
<item >Jely Bean</item>
<item >Khushboo</item>
<item >Kamal</item>
<item >Mango</item>
<item >Margo</item>
<item >Melon</item>
<item >Mouse</item>
<item >Narrow</item>
<item >Noose</item>
<item >Nilon</item>
<item >Oops</item>
<item >Owl</item>
<item >Parrot</item>
<item >Pencil</item>
<item >Palates</item>
<item >Pillow</item>
<item >Queue</item>
<item >Qwk</item>
<item >Rat</item>
<item >Run</item>
<item >Ranbeer</item>
<item >Raina</item>
<item >Ribbon</item>
<item >Swallow</item>
<item >Sarawati</item>
<item >Singing</item>
<item >Shine</item>
<item >Tea</item>
<item >Tamarind</item>
<item >Tiger</item>
<item >Vivek</item>
<item >Voilet</item>
<item >Voilence</item>
<item >Value</item>
<item >Vent</item>
<item >Wall</item>
<item >Wand</item>
<item >X</item>
<item >Yogurt</item>
<item >Yatch</item>
<item >Z</item>
</string-array>
<string name="header">Android Alphabetic IndexBar Scroller</string>
<string name="dot">.</string>
</resources>
这是我的密码
public class IndexBar extends Activity implements OnItemClickListener {
HashMap<Character, Integer> alphabetToIndex;
static String TAG = "IndexBar";
int number_of_alphabets = -1;
static IndexBarHandler handler;
private EditText editsearch;
private ArrayAdapter<String> adapter1;
public ArrayAdapter<String> mainadapter;
public ArrayList<String> memberlist;
public ArrayList<String> first;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.indexbarlayout);
editsearch = (EditText) findViewById(R.id.textview_header);
editsearch.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub
mainadapter.getFilter().filter(s.toString());
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
});
getScreenHeight(this);
getScreenWidth(this);
handler = new IndexBarHandler(this);
}
protected void onResume() {
super.onResume();
/* populating the base listview */
CustomListView mainlistview = (CustomListView) findViewById(R.id.listView_main);
String main_list_array[] = getResources().getStringArray(
R.array.base_array);
if (main_list_array == null) {
Log.d(TAG, "Array of the main listview is null");
return;
}
mainadapter = new ArrayAdapter<String>(
getBaseContext(), R.layout.mainlistview_row/*
* android.R.layout.
* simple_list_item_1
*/,
main_list_array);
mainlistview.setAdapter(mainadapter);
populateHashMap();
}
public int convertDipToPx(int dp, Context context) { // 10dp=15px
Resources r = context.getResources();
float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp,
r.getDisplayMetrics());
return (int) px;
}
public int convertPxtoDip(int pixel) { // 15px=23dp
float scale = getResources().getDisplayMetrics().density;
int dips = (int) ((pixel / scale) + 0.5f);
return dips;
}
/**
* Determines the width of the screen in pixels
*
* @return width
*/
public int getScreenWidth(Activity activity) {
Display display = activity.getWindowManager().getDefaultDisplay();
int width = display.getWidth();
Log.d(TAG, "Screen Width in pixels=" + width);
return width;
}
/**
* Determines the height of the screen in pixels
*
* @return height
*/
public int getScreenHeight(Activity activity) {
Display display = activity.getWindowManager().getDefaultDisplay();
int height = display.getHeight();
Log.d(TAG, "Screen Height in pixels=" + height);
return height;
}
public float pixelsToSp(Context context, Float px) {
float scaledDensity = context.getResources().getDisplayMetrics().scaledDensity;
Log.d(TAG, "GetTextSize in pixels=" + px + " In Sp="
+ (px / scaledDensity));
return px / scaledDensity;
}
public void onItemClick(AdapterView<?> arg0, View view, int arg2, long arg3) {
if (!(view instanceof TextView || view == null))
return;
TextView rowview = (TextView) view;
CharSequence alpahbet = rowview.getText();
if (alpahbet == null || alpahbet.equals(""))
return;
String selected_alpahbet = alpahbet.toString().trim();
Integer position = alphabetToIndex.get(selected_alpahbet.charAt(0));
Log.d(TAG, "Selected Alphabet is:" + selected_alpahbet
+ " position is:" + position);
ListView listview = (ListView) findViewById(R.id.listView_main);
listview.setSelection(position);
}
/**
* This populates the HashMap which contains the mapping between the
* alphabets and their relative position index.
*/
private void populateHashMap() {
alphabetToIndex = new HashMap<Character, Integer>();
String base_list[] = getResources().getStringArray(R.array.base_array);
int base_list_length = base_list.length;
for (int i = 0; i < base_list_length; i++) {
char firstCharacter = base_list[i].charAt(0);
boolean presentOrNot = alphabetToIndex.containsKey(firstCharacter);
if (!presentOrNot) {
alphabetToIndex.put(firstCharacter, i);
// Log.d(TAG,"Character="+firstCharacter+" position="+i);
}
}
number_of_alphabets = alphabetToIndex.size(); // Number of enteries in
// the map is equal to
// number of letters
// that would
// necessarily display
// on the right.
/*
* Now I am making an entry of those alphabets which are not there in
* the Map
*/
String alphabets[] = getResources().getStringArray(
R.array.alphabtes_array);
int index = -1;
for (String alpha1 : alphabets) {
char alpha = alpha1.charAt(0);
index++;
if (alphabetToIndex.containsKey(alpha))
continue;
/*
* Start searching the next character position. Example, here alpha
* is E. Since there is no entry for E, we need to find the position
* of next Character, F.
*/
for (int i = index + 1; i < 26; i++) { // start from next character
// to last character
char searchAlphabet = alphabets[i].charAt(0);
/*
* If we find the position of F character, then on click event
* on E should take the user to F
*/
if (alphabetToIndex.containsKey(searchAlphabet)) {
alphabetToIndex.put(alpha,
alphabetToIndex.get(searchAlphabet));
break;
} else if (i == 25) /*
* If there are no entries after E, then on
* click event on E should take the user to
* end of the list
*/
alphabetToIndex.put(alpha, base_list_length - 1);
else
continue;
}//
}//
}
public void getAllMember() {
new AsyncTask<Void, Void, String>() {
ProgressDialog mProgressDialog;
CustomListView mainlistview = (CustomListView) findViewById(R.id.listView_main);
public String firstname;
protected void onPostExecute(String result) {
mProgressDialog.dismiss();
memberlist = new ArrayList<String>();
first = new ArrayList<String>();
try {
JSONObject jsob = new JSONObject(result.toString());
if (jsob.getString("msg").equalsIgnoreCase("Success")) {
JSONArray datajson = jsob.getJSONArray("data");
for (int i = 0; i < datajson.length(); i++) {
JSONObject c = datajson.getJSONObject(i);
String id = c.getString("iMember_id");
firstname = c.getString("vUsername");
Log.d("firstname val", firstname);
memberlist.add(firstname);
}
mainadapter = new ArrayAdapter<String>(
getBaseContext(),
R.layout.mainlistview_row/*
* android.R.layout.
* simple_list_item_1
*/, memberlist);
mainlistview.setAdapter(mainadapter);
} else {
System.out.println("not a valid user");
}
} catch (Exception e) {
Log.e("login problem", "" + e);
}
}
private void startActivity(Intent i) {
// TODO Auto-generated method stub
}
@Override
protected String doInBackground(Void... arg0) {
// Creating service handler class instance
try {
HttpPost httppost1 = null;
HttpClient httpclient1 = new DefaultHttpClient();
httppost1 = new HttpPost(JsonKey.MAIN_URL);
// Add your data
List<NameValuePair> nameValuePairs1 = new ArrayList<NameValuePair>(
1);
nameValuePairs1.add(new BasicNameValuePair("action",
"GetAllMembers"));
httppost1.setEntity(new UrlEncodedFormEntity(
nameValuePairs1));
// Execute HTTP Post Request
HttpResponse response1 = httpclient1.execute(httppost1);
BufferedReader in1 = new BufferedReader(
new InputStreamReader(response1.getEntity()
.getContent()));
StringBuffer sb1 = new StringBuffer("");
String line1 = "";
while ((line1 = in1.readLine()) != null) {
sb1.append(line1);
}
in1.close();
Log.e(" Get All magazine original data", sb1.toString());
return sb1.toString();
} catch (Exception e) {
Log.e("Get All magazine response problem", "" + e);
return " ";
}
}
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
mProgressDialog = new ProgressDialog(IndexBar.this);
mProgressDialog.setTitle("");
mProgressDialog.setCanceledOnTouchOutside(false);
mProgressDialog.setMessage("Please Wait...");
mProgressDialog.show();
}
}.execute();
}
}
the value of memberlist in getallmember is i want to set in
mainadapter = new ArrayAdapter<String>(
getBaseContext(), R.layout.mainlistview_row/*
* android.R.layout.
* simple_list_item_1
*/,
main_list_array);
公共类IndexBar扩展活动实现了McClickListener{
HashMap alphabetToIndex;
静态字符串TAG=“IndexBar”;
字母的整数=1;
静态IndexBarHandler;
私人编辑文本编辑搜索;
专用阵列适配器1;
公共阵列适配器主适配器;
公共ArrayList成员列表;
公众优先;
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.indexbarlayout);
editsearch=(EditText)findViewById(R.id.textview\u头);
editsearch.addTextChangedListener(新的TextWatcher(){
@凌驾
public void onTextChanged(字符序列,int start,int before,
整数计数){
//TODO自动生成的方法存根
mainadapter.getFilter().filter(s.toString());
}
@凌驾
更改前的公共无效(字符序列、整数开始、整数计数、,
整数后){
//TODO自动生成的方法存根
}
@凌驾
公共无效后文本已更改(可编辑){
//TODO自动生成的方法存根
}
});
获取屏幕高度(此);
getScreenWidth(这个);
handler=新的IndexBarHandler(此);
}
受保护的void onResume(){
super.onResume();
/*填充基本listview*/
CustomListView mainlistview=(CustomListView)findViewById(R.id.listView\u main);
字符串main_list_array[]=getResources().getStringArray(
R.array.base_数组);
if(主列表数组==null){
d(标记,“主listview的数组为空”);
回来
}
mainadapter=新阵列适配器(
getBaseContext(),R.layout.mainlistview\u行/*
*android.R.布局。
*简单列表项目1
*/,
主列表(数组);
mainlistview.setAdapter(mainadapter);
populateHashMap();
}
公共int-convertDipToPx(int-dp,Context-Context){//10dp=15px
Resources r=context.getResources();
浮动px=类型值。应用尺寸,
r、 getDisplayMetrics());
返回(int)px;
}
公共整数转换pxtodip(整数像素){//15px=23dp
浮动比例=getResources().getDisplayMetrics().density;
int-dips=(int)((像素/刻度)+0.5f);
回报率下降;
}
/**
*确定屏幕的宽度(以像素为单位)
*
*@返回宽度
*/
public int getScreenWidth(活动){
Display Display=activity.getWindowManager().getDefaultDisplay();
int width=display.getWidth();
Log.d(标签,“屏幕像素宽度=”+宽度);
返回宽度;
}
/**
*确定屏幕的高度(以像素为单位)
*
*@返回高度
*/
公共int getScreenHeight(活动){
Display Display=activity.getWindowManager().getDefaultDisplay();
int height=display.getHeight();
Log.d(标签,“屏幕像素高度=”+高度);
返回高度;
}
公共浮点像素STOSP(上下文,浮点像素){
float-scaledDensity=context.getResources().getDisplayMetrics().scaledDensity;
Log.d(标记“GetTextSize in pixels=“+px+”in Sp=”
+(px/标度密度);
返回px/标度密度;
}
public void onItemClick(AdapterView arg0、View视图、int arg2、long arg3){
if(!(文本视图的视图实例| |视图==null))
回来
TextView行视图=(TextView)视图;
CharSequence alpahbet=rowview.getText();
if(alpahbet==null | | alpahbet.equals(“”)
回来
所选字符串_alpahbet=alpahbet.toString().trim();
整数位置=alphabetToIndex.get(选定的字母表字符(0));
Log.d(标记,“选定字母表为:”+选定字母表
+“位置为:”+位置);
ListView ListView=(ListView)findViewById(R.id.ListView\u main);
listview.setSelection(位置);
}
/**
*这将填充HashMap,其中包含
*字母表及其相对位置索引。
*/
私有void populateHashMap(){
alphabetToIndex=新HashMap();
字符串base_list[]=getResources().getStringArray(R.array.base_数组);
int base_list_length=base_list.length;
对于(int i=0;i