Java Android:ListView和ArrayAdapter
所以我想做一个应用程序,加载一个新闻列表。 现在我这样做是为了创建ListView和ArrayAdapter:Java Android:ListView和ArrayAdapter,java,android,listview,android-listview,Java,Android,Listview,Android Listview,所以我想做一个应用程序,加载一个新闻列表。 现在我这样做是为了创建ListView和ArrayAdapter: package com.example.MPAK.newsapp; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.
package com.example.MPAK.newsapp;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import com.example.MPAK.newsapp.R;
import java.util.ArrayList;
public class NewsActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_news);
ListView lv = (ListView) findViewById(R.id.listView);
String[] values = new String[]{"News1", "NewsTitle2", "NewsTitle3", "NewsTitl4", "NewsTtitle5"};
ArrayList<String> list = new ArrayList<String>();
for (int i = 0; i < 1000; i++) {
list.add(values[i]);
}
ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, list);
lv.setAdapter(adapter);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getApplicationContext(),
"Click ListItem Number " + position, Toast.LENGTH_LONG)
.show();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.news, 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();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
package com.example.MPAK.newsapp;
导入android.app.Activity;
导入android.os.Bundle;
导入android.view.Menu;
导入android.view.MenuItem;
导入android.view.view;
导入android.widget.AdapterView;
导入android.widget.ArrayAdapter;
导入android.widget.ListView;
导入android.widget.Toast;
导入com.example.MPAK.newsapp.R;
导入java.util.ArrayList;
公共类NewsActivity扩展了活动{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_news);
ListView lv=(ListView)findViewById(R.id.ListView);
字符串[]值=新字符串[]{“News1”、“NewsTitle2”、“NewsTitle3”、“newstitle4”、“newstitle5”};
ArrayList=新建ArrayList();
对于(int i=0;i<1000;i++){
列表。添加(值[i]);
}
ArrayAdapter=新的ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,list);
低压设置适配器(适配器);
lv.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
Toast.makeText(getApplicationContext(),
“点击列表项目编号”+位置,烤面包片长度(长)
.show();
}
});
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(R.menu.news,menu);
返回true;
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
//处理操作栏项目单击此处。操作栏将
//自动处理Home/Up按钮上的点击,只要
//在AndroidManifest.xml中指定父活动时。
int id=item.getItemId();
if(id==R.id.action\u设置){
返回true;
}
返回super.onOptionsItemSelected(项目);
}
}
问题是它只显示我的值数组中的第一项。我不知道为什么?我做错了什么
最后,我希望应用程序读取xml文件,读取标题,并将其显示在列表中。通过单击列表项,它将打开一个新活动并显示新闻的描述。
有人对此有很好的指导吗
提前感谢(int i=0;ifor (int i = 0; i < values.length; i++) {
list.add(values[i]);
}
列表。添加(值[i]);
}
有关xml解析的更多信息,Darek Banas提供了一个很好的教程:
还有一个很好的教程:
上述代码必须抛出ArrayoutofIndex例外示例:您可以发布布局文件吗?我还想告诉你,你不需要启动活动来显示,为什么不使用片段呢?哦..1000只是一个测试。。。最初是i