Reputation: 39
I made a listview. But sometime it disappeared, and it appeared when I clicked search Button. I found out through logcat that getView() method is the problem. Sometime getView() method doesn't work, but it works when I press the search button.
[Main Activity] *Main Acitivity has 'onCreateOptionsMenu' function, But there're no function about listview!
public class MainActivity extends AppCompatActivity {
ListView listView;
SingerItemView adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar myToolbar = findViewById(R.id.toolbar);
setSupportActionBar(myToolbar);
getSupportActionBar().setDisplayShowTitleEnabled(false);
//listView
listView = findViewById(R.id.listView);
adapter = new SingerItemView(getApplicationContext());
getListInfo info = new getListInfo(this);
info.requestGet("MyserverAddress", "", "");
listView.setAdapter(adapter);
}
}
[SingerItemView]
public class SingerItemView extends BaseAdapter implements View.OnClickListener {
private SingerItem mUser;
private Context mContext;
private TextView textCode;
private ArrayList<SingerItem> mUserData;
public SingerItemView(Context context) {
super();
mContext = context;
mUserData = new ArrayList<SingerItem>();
}
@Override
public int getCount() {
return mUserData.size();
}
@Override
public SingerItem getItem(int position) {
return mUserData.get(position);
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
v = ((LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE))
.inflate(R.layout.singer_item, null);
}
textCode = v.findViewById(R.id.code);
mUser = getItem(position);
if (mUser != null) {
textCode.setText(mUser.getCode());
}
return v;
}
public void add(SingerItem user) {
mUserData.add(user);
}
}
Upvotes: 1
Views: 62