如何在AppCompatActivity中实现ListView? [英] How Do I Implement ListView in AppCompatActivity?
本文介绍了如何在AppCompatActivity中实现ListView?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
public class MainActivity extends AppCompatActivity {
protected List<ParseObject> mStatus;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
ParseUser currentUser = ParseUser.getCurrentUser();
if (currentUser != null){
//show user the homepage
ParseQuery<ParseObject> query = new ParseQuery<ParseObject>("Status");
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> status, ParseException e) {
if (e==null){
//success
mStatus = status;
StatusAdapter adapter = new StatusAdapter(getListView().getContext(), mStatus);
setListAdapter(adapter);
} else {
//ther was a problem.
}
}
});
} else {
//show login screen
Intent takeUserToLogin = new Intent(this, LoginActivity.class);
startActivity(takeUserToLogin);
}
}
在上面的代码中,我在getListView()
和setListAdapter
上遇到错误.
In above code I got error on getListView()
and setListAdapter
.
我在StatusAdapter
类中具有以下代码:
I have the following code in StatusAdapter
class:
public class StatusAdapter extends ArrayAdapter<ParseObject> {
protected Context mContext;
protected List<ParseObject> mStatus;
public StatusAdapter(Context context, List<ParseObject> status){
super(context, R.layout.homepagecustomlayout, status);
mContext = context;
mStatus = status;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent){
ViewHolder holder;
if(convertView == null){
convertView = LayoutInflater.from(mContext).inflate(
R.layout.homepagecustomlayout,null);
holder = new ViewHolder();
holder.usernameHomepage = (TextView)convertView.findViewById(R.id.usernameHP);
holder.statusHomepage = (TextView)convertView.findViewById(R.id.statusHP);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
ParseObject statusObject = mStatus.get(position);
//user
String username = statusObject.getString("user");
holder.usernameHomepage.setText(username);
//status
String status = statusObject.getString("newStatus");
holder.statusHomepage.setText(status);
return convertView;
}
public static class ViewHolder{
TextView usernameHomepage;
TextView statusHomepage;
}
}
我正在关注本教程. >
推荐答案
getListView()
和setListAdapter()
是ListActivity
/ListFragment
的方法.
但是,似乎您正在扩展AppCompatActivity
.因此,您可以在activity_main
中添加listView
.然后:
But, it seems like you are extending AppCompatActivity
. So, you can add a listView
to your activity_main
; and then:
ListView listview = findViewById(R.id.yourlistID);
以此方式设置适配器-listView.setAdapter();
whereby you set the adapter this way - listView.setAdapter();
希望这会有所帮助!
这篇关于如何在AppCompatActivity中实现ListView?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文