Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.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 Can';在listView上看不到adapterArray信息_Java_Android_Listview_Android Arrayadapter_Broadcast - Fatal编程技术网

Java Can';在listView上看不到adapterArray信息

Java Can';在listView上看不到adapterArray信息,java,android,listview,android-arrayadapter,broadcast,Java,Android,Listview,Android Arrayadapter,Broadcast,我有个问题。我尝试在listView上显示一些信息,我使用ArrayAdapter,但什么都看不到。我将代码放在下面,希望它能有所帮助: ListView listView = (ListView) findViewById(R.id.listView1); ArrayList<String> arrayFinal = new ArrayList<String>(); for(int i = 0; i < idRocodromo.size(); i++) {

我有个问题。我尝试在listView上显示一些信息,我使用ArrayAdapter,但什么都看不到。我将代码放在下面,希望它能有所帮助:

ListView listView = (ListView) findViewById(R.id.listView1);
ArrayList<String> arrayFinal = new ArrayList<String>();
for(int i = 0; i < idRocodromo.size(); i++)
{
    arrayFinal.add(idRocodromo.get(i) + " - " + rocodromo.get(i) + " - " + ciudad.get(i) + " - " + comentario.get(i));
}

ArrayAdapter<String> itemsAdapter = new ArrayAdapter<String>(ctx, android.R.layout.simple_expandable_list_item_1, android.R.id.text1, arrayFinal);


listView.setAdapter(itemsAdapter);
ListView ListView=(ListView)findViewById(R.id.listView1);
ArrayList arrayFinal=新的ArrayList();
对于(int i=0;i

ArrayFinal有信息,但它没有显示在listView上,有人能帮我吗?这可能是因为它位于BroadcastReceiver上?

一种简单的方法是创建自己的自定义ListView适配器。我可以想象,从代码中,您试图做的是将arraylist中的字符串添加到ListView中,以便稍后查看

自定义适配器的好处在于,您可以控制ListView视图中的所有内容,并且可以以更有限的方式精确显示所需内容。下面是一个非常基本的例子

主要活动XML

您可以看到,我们在这个布局文件中所做的一切都是在我们的活动中声明一个listview

<?xml version="1.0" encoding="utf-8"?>
<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" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

<ListView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/listView"
    android:layout_centerVertical="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />
</RelativeLayout>
这将是创建listview的最佳方式,因为它为您提供了更多的控制和功能。您也可以通过这种方式轻松地扩展您的应用程序,因为您只需要使用您想要的任何其他图像或其他东西来调整这个类

资源


prolly,因为在适配器创建一个listview时,idRocodromo为空,因此需要将listview声明为listview listview=(listview)findViewById(R.id.listView1);不,arrayFinal有信息,我是在我的问题上写的。我看到了,还有伊德罗科德罗莫、洛科德罗莫、城市和科门塔里奥info@JordanSeanor对不起,我复制的代码不正确,我已经声明了listview,正如您所说的,对不起。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:text="Large Text"
    android:id="@+id/textView" />
</LinearLayout>
public class MainActivity extends AppCompatActivity {

    public ArrayList mainArr,arrOne, arrTwo;
    private MyAdapter myAdapter;
    private ListView listView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listView = (ListView) findViewById(R.id.listView);
        myAdapter = new MyAdapter(this, configureList());
        listView.setAdapter(myAdapter);
    }

    public ArrayList configureList(){
        arrOne = new ArrayList();
        arrTwo = new ArrayList();
        mainArr = new ArrayList();
        arrOne.add(0, "Joe");
        arrOne.add(1, "Phil");
        arrOne.add(2, "Jose");
        arrTwo.add(0, "Mexico City");
        arrTwo.add(1, "Minneapolis");
        arrTwo.add(2, "Pittsburgh");

        for(int i = 0; i < arrOne.size(); i++){
            mainArr.add(i, arrOne.get(i) + " - " + arrTwo.get(i));
        }
        return  mainArr;
     }
}
public class MyAdapter extends BaseAdapter {
    private ArrayList myData;
    private Context mContext;

    public MyAdapter(Context context, ArrayList data){
        this.myData = data;
        this.mContext = context;
    }

    //I tell you how big and how many rows are going to be in the listview.
    @Override
    public int getCount() {
        return myData.size();
    }

    //I will return the object at an exact posiition in the listview.
    @Override
    public Object getItem(int position) {
        return myData.get(position);
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    /*
    I create and configure the views for you! You can see here that we are taking a view, inflating it to our single row
    that we created earlier and then we can reference the textview or whatever else we want!
     */
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
    View view = convertView;
    if(convertView == null){
        view = View.inflate(mContext, R.layout.single_row, null);
    }
    TextView txt = (TextView)view.findViewById(R.id.textView);
    txt.setText(myData.get(position).toString());
    return view;
    }
}