Android 从Parse.com填充列表
我试图从parse.com获取一列字符串,并使用ArrayAdapter将它们加载到ListView。 在日志中,我试图加载的字符串数组似乎是空的(然后写入“storage=null”)。 我不明白是什么问题。 我正在从MainActivity中的parse加载字符串,然后使用在此之前创建的字符串数组初始化适配器。 提前谢谢 主要活动Android 从Parse.com填充列表,android,listview,parse-platform,Android,Listview,Parse Platform,我试图从parse.com获取一列字符串,并使用ArrayAdapter将它们加载到ListView。 在日志中,我试图加载的字符串数组似乎是空的(然后写入“storage=null”)。 我不明白是什么问题。 我正在从MainActivity中的parse加载字符串,然后使用在此之前创建的字符串数组初始化适配器。 提前谢谢 主要活动 public class MainActivity extends AppCompatActivity { ListView list; String[] ite
public class MainActivity extends AppCompatActivity {
ListView list;
String[] itemname ;
String[] Strings;
Integer[] imgid={
R.drawable.one,
R.drawable.one,
R.drawable.one,
R.drawable.one,
R.drawable.one,
R.drawable.one,
R.drawable.one,
R.drawable.one,
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
ParseQuery<ParseObject> query = ParseQuery.getQuery("Song");
query.orderByDescending("updatedAt");
query.findInBackground(new FindCallback<ParseObject>() {
public void done(List<ParseObject> songs, ParseException e) {
if (e == null) {
Strings = new String[songs.size()-1];
for (int i = 0; i < songs.size()-1; i++) {
ParseObject object = songs.get(i);
String songName = object.getString("name");
Strings[i] = songName;
}
} else {
Log.d("error", "Error: " + e.getMessage());
}
}
});
CustomListAdapter adapter=new CustomListAdapter(this, Strings);
list=(ListView)findViewById(R.id.list);
list.setAdapter(adapter);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
String Slecteditem= itemname[+position];
Toast.makeText(getApplicationContext(), Slecteditem, Toast.LENGTH_SHORT).show();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
return super.onOptionsItemSelected(item);
}
}
public类MainActivity扩展了AppCompatActivity{
列表视图列表;
字符串[]itemname;
字符串[]字符串;
整数[]imgid={
R.drawable.one,
R.drawable.one,
R.drawable.one,
R.drawable.one,
R.drawable.one,
R.drawable.one,
R.drawable.one,
R.drawable.one,
};
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar Toolbar=(Toolbar)findViewById(R.id.Toolbar);
设置支持操作栏(工具栏);
ParseQuery=ParseQuery.getQuery(“歌曲”);
query.orderByDescending(“updatedAt”);
findInBackground(新的FindCallback(){
公共作废完成(列出歌曲,Parsee){
如果(e==null){
Strings=新字符串[songs.size()-1];
对于(int i=0;i
适配器
public class CustomListAdapter extends ArrayAdapter<String> {
private final Activity context;
private final String[] itemname;
public CustomListAdapter(Activity context, String[] itemname) {
super(context, R.layout.content_main, itemname);
this.context=context;
this.itemname=itemname;
}
public TextView extratxt;
public View getView(int position,View view,ViewGroup parent) {
LayoutInflater inflater=context.getLayoutInflater();
View rowView=inflater.inflate(R.layout.line_single, null,true);
TextView txtTitle = (TextView) rowView.findViewById(R.id.Poet);
TextView dayView = (TextView) rowView.findViewById(R.id.Day);
extratxt = (TextView) rowView.findViewById(R.id.SongaName);
txtTitle.setText("hello");
dayView.setText("D");
extratxt.setText("Description " + itemname[position]);
return rowView;
};
}
公共类CustomListAdapter扩展了ArrayAdapter{
私人最终活动背景;
私有最终字符串[]itemname;
公共CustomListAdapter(活动上下文,字符串[]itemname){
super(上下文、R.layout.content\u main、itemname);
this.context=context;
this.itemname=itemname;
}
公共文本视图extratxt;
公共视图getView(内部位置、视图视图、视图组父视图){
LayoutInflater充气器=上下文。getLayoutInflater();
视图行视图=充气机。充气(R.layout.line_single,null,true);
TextView txtTitle=(TextView)rowView.findViewById(R.id.poter);
TextView dayView=(TextView)rowView.findViewById(R.id.Day);
extratxt=(TextView)rowView.findViewById(R.id.SongaName);
setText(“你好”);
dayView.setText(“D”);
extractxt.setText(“说明”+项目名称[位置]);
返回行视图;
};
}
日志(错误)
java.lang.RuntimeException:无法启动活动组件信息{.MainActivity}:java.lang.NullPointerException:存储==null
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2378)
位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2440)
在android.app.ActivityThread.access$800(ActivityThread.java:162)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1349)上
位于android.os.Handler.dispatchMessage(Handler.java:102)
位于android.os.Looper.loop(Looper.java:135)
位于android.app.ActivityThread.main(ActivityThread.java:5430)
位于java.lang.reflect.Method.invoke(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:372)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:913)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:706)
原因:java.lang.NullPointerException:storage==null
位于java.util.Arrays$ArrayList。(Arrays.java:38)
位于java.util.Arrays.asList(Arrays.java:155)
位于android.widget.ArrayAdapter.(ArrayAdapter.java:128)
在shirapp.israel.nir_zabari.shira.CustomListAdapter.(CustomListAdapter.java:16)
位于shirapp.israel.nir_zabari.shira.MainActivity.onCreate(MainActivity.java:62)
java.lang.RuntimeException: Unable to start activity ComponentInfo{.MainActivity}: java.lang.NullPointerException: storage == null
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2378)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2440)
at android.app.ActivityThread.access$800(ActivityThread.java:162)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1349)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5430)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:913)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:706)
Caused by: java.lang.NullPointerException: storage == null
at java.util.Arrays$ArrayList.<init>(Arrays.java:38)
at java.util.Arrays.asList(Arrays.java:155)
at android.widget.ArrayAdapter.<init>(ArrayAdapter.java:128)
at shirapp.israel.nir_zabari.shira.CustomListAdapter.<init>(CustomListAdapter.java:16)
at shirapp.israel.nir_zabari.shira.MainActivity.onCreate(MainActivity.java:62)
at android.app.Activity.performCreate(Activity.java:6097)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2331)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2440)
at android.app.ActivityThread.access$800(ActivityThread.java:162)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1349)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5430)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:913)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:706)
public class MainActivity extends AppCompatActivity {
ListView list;
CustomListAdapter adapter;
String[] itemname ;
ArrayList<String> Strings;
Integer[] imgid={
R.drawable.one,
R.drawable.one,
R.drawable.one,
R.drawable.one,
R.drawable.one,
R.drawable.one,
R.drawable.one,
R.drawable.one,
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
Strings = new ArrayList();
ParseQuery<ParseObject> query = ParseQuery.getQuery("Song");
query.orderByDescending("updatedAt");
query.findInBackground(new FindCallback<ParseObject>() {
public void done(List<ParseObject> songs, ParseException e) {
if (e == null) {
for (int i = 0; i < songs.size() - 1; i++) {
ParseObject object = songs.get(i);
String songName = object.getString("name");
Strings.add(songName);
adapter.notifyDataSetChanged();
}
} else {
Log.d("error", "Error: " + e.getMessage());
}
}
});
adapter = new CustomListAdapter(this, Strings);
list=(ListView)findViewById(R.id.list);
list.setAdapter(adapter);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
String Slecteditem= itemname[+position];
Toast.makeText(getApplicationContext(), Slecteditem, Toast.LENGTH_SHORT).show();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
return super.onOptionsItemSelected(item);
}
}