好的,所以我在使用listviews时遇到了麻烦。我有一个使用sharedPreferences保存的字符串数组,我想访问它们并与它们一起获取我需要的信息。保存的字符串是来自parse.com的objectID,通过它们,我可以访问任何用户数据。所以我想要的是从“fullname”列中检索每个用户的名字并制作一个列表,我可以稍后点击它并访问他们的个人资料。所以有人理解我的意思吗?这就是我所拥有的和我坚持的。
SharedPreferences settings = getSharedPreferences("NotificationIDs", Context.MODE_PRIVATE);
Set<String> myStrings = settings.getStringSet("myStrings", new HashSet<String>());
for (String s : myStrings) {
ParseQuery<ParseObject> query = ParseQuery.getQuery("_User");
query.getInBackground(s, new GetCallback<ParseObject>() {
@Override
public void done(ParseObject parseObject, ParseException e) {
String name = parseObject.getString("fullname");
Log.d("These are the names: ", parseObject.getString("fullname"));
}
});
正如你所看到我使用im使用“for”来完成所有保存的字符串(objectIDS)。它有效,在logcat中显示我想要的名称。但我需要以某种方式列出这些名称并使其可点击。 OnClick会打开一个新的活动,其中将放置用户objectID,并且将使用它来检索所有数据。但这不是那么重要,但清单就是这样。
// EDIT
我这样做但是没有用。该清单最后空白。
公共类UserListForHistory扩展了AppCompatActivity {
private ArrayAdapter<String> mAdapter = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user_list_for_history);
mAdapter = new ArrayAdapter<String>(getApplicationContext(),
android.R.layout.simple_list_item_1, android.R.id.text1);
final ListView list = (ListView) findViewById(R.id.idList);
list.setAdapter(mAdapter);
SharedPreferences settings = getSharedPreferences("NotificationIDs", Context.MODE_PRIVATE);
Set<String> myStrings = settings.getStringSet("myStrings", new HashSet<String>());
for (String s : myStrings) {
ParseQuery<ParseObject> query = ParseQuery.getQuery("_User");
query.getInBackground(s, new GetCallback<ParseObject>() {
@Override
public void done(ParseObject parseObject, ParseException e) {
mAdapter.add(parseObject.getString("fullname"));
Log.d("These are the names: ", parseObject.getString("fullname"));
}
});
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_user_list_for_history, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
xml文件
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.parseapp.eseen.eseen.UserListForHistory">
<TextView
android:id="@android:id/text1"
android:text="@string/hello_world"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<ListView
android:id="@+id/idList"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>