片段更改时 AutoCompleteTextView arrayList 更新不起作用
AutoCompleteTextView arrayList update not working when fragment changed
首先,我的英语水平很差。
我用android.support.v4.view.ViewPager和片段.
当我滑动片段页面时,想要更新 AutoCompleteTextView 适配器。
尝试
1.combination onPageSelected(int position)
中的(清除、设置、通知..)
aList.clear();
autoSearchAdapter.clear();
autoTextView.setAdapter(autoSearchAdapter);
autoSearchAdapter.notifyDataSetChanged();
- 在
onPageSelected(int position)
中使用处理程序
提示。有时 AutoCompleteTextView arrayList 工作。(50%)并且在 AutoCompleteTextView 中写完句子后它正在工作,滑动页面。此时 arraylist 扩展了。所有列表都可见。
部分代码
public class MainActivity 扩展了 ActionBarActivity {
static String uName;
TestAdapter demoPagerAdapter;
ViewPager mViewPager;
static AutoCompleteTextView autoTextView;
static ArrayAdapter<String> autoSearchAdapter;
public static ArrayList<String> aList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//hide actionbar
getSupportActionBar().hide();
setContentView(R.layout.activity_main);
// fragments, so use getSupportFragmentManager.
demoPagerAdapter = new TestAdapter(getSupportFragmentManager());
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(demoPagerAdapter);
getAccountInfo();
SetAutoSearchAdapter();
KeyBoardHide();
}
private void SetAutoSearchAdapter(){
//AutoCompleteTextView setting
autoTextView = (AutoCompleteTextView) findViewById(R.id.autocomplete_textview);
aList=new ArrayList<String>();
autoSearchAdapter =
new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, aList);
autosearchInit();
autoTextView.setAdapter(autoSearchAdapter);
//updating autosearch adapter
mViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
if (position == 0) {
aList.clear();
Toast.makeText(getApplicationContext(), "fragment 0", Toast.LENGTH_LONG).show();
//autosearchInit();
aList.add("aaaaaa00");
aList.add("bbbbb00");
aList.add("ccccc00");
autoSearchAdapter.notifyDataSetChanged();
} else if (position == 1) {
Toast.makeText(getApplicationContext(), "fragment 1.", Toast.LENGTH_LONG).show();
aList.clear();
aList.add("aaaaaa11");
aList.add("bbbbb11");
aList.add("ccccc11");
autoSearchAdapter.notifyDataSetChanged();
} else if (position == 2) {
Toast.makeText(getApplicationContext(), "fragment 2", Toast.LENGTH_LONG).show();
aList.clear();
autoSearchAdapter.clear();
autoTextView.setAdapter(autoSearchAdapter);
aList.add("aaaaa22");
aList.add("bbbbb22");
aList.add("ccccc22");
autoSearchAdapter.notifyDataSetChanged();
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
在 autoSearchAdapter 中你必须创建方法来设置数组,
private ArrayList<Test> test;
Public void setAryList(ArrayList<Test> test){
this.test = test;
}
在你必须调用
之后
autoSearchAdapter.setAryList(aList);
autoSearchAdapter.notifyDataSetChanged();
它很有魅力。
首先,我的英语水平很差。
我用android.support.v4.view.ViewPager和片段.
当我滑动片段页面时,想要更新 AutoCompleteTextView 适配器。
尝试
1.combination onPageSelected(int position)
aList.clear();
autoSearchAdapter.clear();
autoTextView.setAdapter(autoSearchAdapter);
autoSearchAdapter.notifyDataSetChanged();
- 在
onPageSelected(int position)
中使用处理程序
提示。有时 AutoCompleteTextView arrayList 工作。(50%)并且在 AutoCompleteTextView 中写完句子后它正在工作,滑动页面。此时 arraylist 扩展了。所有列表都可见。
部分代码
public class MainActivity 扩展了 ActionBarActivity {
static String uName;
TestAdapter demoPagerAdapter;
ViewPager mViewPager;
static AutoCompleteTextView autoTextView;
static ArrayAdapter<String> autoSearchAdapter;
public static ArrayList<String> aList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//hide actionbar
getSupportActionBar().hide();
setContentView(R.layout.activity_main);
// fragments, so use getSupportFragmentManager.
demoPagerAdapter = new TestAdapter(getSupportFragmentManager());
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(demoPagerAdapter);
getAccountInfo();
SetAutoSearchAdapter();
KeyBoardHide();
}
private void SetAutoSearchAdapter(){
//AutoCompleteTextView setting
autoTextView = (AutoCompleteTextView) findViewById(R.id.autocomplete_textview);
aList=new ArrayList<String>();
autoSearchAdapter =
new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, aList);
autosearchInit();
autoTextView.setAdapter(autoSearchAdapter);
//updating autosearch adapter
mViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
if (position == 0) {
aList.clear();
Toast.makeText(getApplicationContext(), "fragment 0", Toast.LENGTH_LONG).show();
//autosearchInit();
aList.add("aaaaaa00");
aList.add("bbbbb00");
aList.add("ccccc00");
autoSearchAdapter.notifyDataSetChanged();
} else if (position == 1) {
Toast.makeText(getApplicationContext(), "fragment 1.", Toast.LENGTH_LONG).show();
aList.clear();
aList.add("aaaaaa11");
aList.add("bbbbb11");
aList.add("ccccc11");
autoSearchAdapter.notifyDataSetChanged();
} else if (position == 2) {
Toast.makeText(getApplicationContext(), "fragment 2", Toast.LENGTH_LONG).show();
aList.clear();
autoSearchAdapter.clear();
autoTextView.setAdapter(autoSearchAdapter);
aList.add("aaaaa22");
aList.add("bbbbb22");
aList.add("ccccc22");
autoSearchAdapter.notifyDataSetChanged();
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
在 autoSearchAdapter 中你必须创建方法来设置数组,
private ArrayList<Test> test;
Public void setAryList(ArrayList<Test> test){
this.test = test;
}
在你必须调用
之后autoSearchAdapter.setAryList(aList);
autoSearchAdapter.notifyDataSetChanged();
它很有魅力。