Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android:ListView和ArrayAdapter_Java_Android_Listview_Android Listview - Fatal编程技术网

Java Android: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.

所以我想做一个应用程序,加载一个新闻列表。 现在我这样做是为了创建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.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新闻提要主题->topicslayout.xml的内容:这段代码将有助于OP,但更好地解释他为什么会使用这段代码。