Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.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/224.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 如何在AndroidStudio中创建动态ListView_Java_Android_Android Studio_Listview - Fatal编程技术网

Java 如何在AndroidStudio中创建动态ListView

Java 如何在AndroidStudio中创建动态ListView,java,android,android-studio,listview,Java,Android,Android Studio,Listview,我一直在寻找关于Android/Java创建具有动态条目的ListView的方法的教程。我目前正试图在ListView的每次迭代中都加入一个字符串。我需要有人告诉我我的课出了什么问题。代码本身一直运行到包含ListView的页面,但它不会对填充ListView有任何影响。如果某人在Android应用程序编程方面表现出色,并且知道这个问题的答案,请在下面的答案中做出贡献 package com.taxiez.app; import android.app.Activity; import and

我一直在寻找关于Android/Java创建具有动态条目的ListView的方法的教程。我目前正试图在ListView的每次迭代中都加入一个
字符串。我需要有人告诉我我的课出了什么问题。代码本身一直运行到包含ListView的页面,但它不会对填充ListView有任何影响。如果某人在Android应用程序编程方面表现出色,并且知道这个问题的答案,请在下面的答案中做出贡献

package com.taxiez.app;

import android.app.Activity;
import android.icu.util.Currency;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;

import androidx.activity.ComponentActivity;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.Text;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;

import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import io.grpc.Context;

import static com.taxiez.app.Items.getCurrencyLocaleMap;
import static com.taxiez.app.R.layout.activity_lists;

public class lists extends AppCompatActivity {

    ListView listViewP;
    ListView listViewB;
    ArrayList<String> mpTitle = getInfo( getFilesDir() + "/tax_personal.xml" );
    ArrayList<String> mbTitle = getInfo( getFilesDir() + "/tax_business.xml" );

    public lists() throws ParserConfigurationException, SAXException, ParseException, IOException {
    }
    // so our images and other things are set in array

    // now paste some images in drawable

    public static ComponentActivity newComponentActivity() {
        return new androidx.activity.ComponentActivity( R.layout.content_search );
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.content_search);

        listViewP = (ListView) findViewById(R.id.view_personal);
        listViewB = (ListView) findViewById(R.id.view_business);
        // now create an adapter class

        MyAdapter adapterP = new MyAdapter(this, mpTitle);
        listViewP.setAdapter(adapterP);
        MyAdapter adapterB = new MyAdapter(this, mbTitle);
        listViewB.setAdapter(adapterB);
        // there is my mistake...
        // now again check this..
        //for (int i = 0; i < mpTitle.size() ; i++)
        {
            adapterP.addAll( mpTitle );
            adapterB.addAll( mbTitle );
        }
        // now set item click on list view
    }

    class MyAdapter extends ArrayAdapter<String> {

        android.content.Context context;
        ArrayList<String> rTitle;

        MyAdapter (android.content.Context c, ArrayList<String> title) {
            super(c, R.layout.content_search, R.id.textView1, title);
            this.context = c;
            this.rTitle = title;

        }

        @NonNull
        @Override
        public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
            LayoutInflater layoutInflater = (LayoutInflater)getApplicationContext().getSystemService(LAYOUT_INFLATER_SERVICE);
            View row = layoutInflater.inflate(R.layout.listed_views, parent, false);
            TextView myTitle = row.findViewById(R.id.textView1);

            myTitle.setText(rTitle.get(position));
            return row;
        }
    }

    public ArrayList<String> getInfo ( String file ) throws ParserConfigurationException, ParseException, IOException, SAXException {
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

        ArrayList<String> biz = null;
        DocumentBuilder db = dbf.newDocumentBuilder();
        Reader reader = new FileReader( file );
        InputSource sax = new InputSource();
        sax.setCharacterStream( reader );

        Document dom = db.parse( sax );

        Element docEle = dom.getDocumentElement();

        NodeList nl = docEle.getChildNodes();

        if (nl != null) {
            int length = nl.getLength();
            for (int i = 0; i < length; i++) {
                if (nl.item( i ).getNodeType() == Node.ELEMENT_NODE) {
                    Element el = (Element) nl.item( i );
                    //Toast.makeText( this, el.getTagName(), Toast.LENGTH_SHORT ).show();
                    if (el.getNodeName().contains( "info" )) {
                        String Date = el.getElementsByTagName( "Date" ).item( 0 ).getTextContent();
                        String Donate = el.getElementsByTagName( "Donate" ).item( 0 ).getTextContent();
                        String Seller = el.getElementsByTagName( "Seller" ).item( 0 ).getTextContent();
                        String StoreNo = el.getElementsByTagName( "Store" ).item( 0 ).getTextContent();
                        String RcptNo = el.getElementsByTagName( "ReceiptNo" ).item( 0 ).getTextContent();
                        String Item = el.getElementsByTagName( "Item" ).item( 0 ).getTextContent();
                        String ItemQuantity = el.getElementsByTagName( "ItemQuantity" ).item( 0 ).getTextContent();
                        String ItemPrice = el.getElementsByTagName( "ItemPrice" ).item( 0 ).getTextContent();
                        String description = el.getElementsByTagName( "Description" ).item( 0 ).getTextContent();
                        String taxAmount = el.getElementsByTagName( "TaxAmount" ).item( 0 ).getTextContent();
                        String totalAmount = el.getElementsByTagName( "TotalAmount" ).item( 0 ).getTextContent();
                        String income = el.getElementsByTagName( "Income" ).item( 0 ).getTextContent();
                        String method = el.getElementsByTagName( "Method" ).item( 0 ).getTextContent();
                        String now = el.getElementsByTagName( "Now" ).item( 0 ).getTextContent();

                        Items items = new Items(method, Seller, Item, description,ItemQuantity,ItemPrice,totalAmount,taxAmount,Date);
                        // CREATE STRINGS
                        String v = items.listString( items );
                        biz.add( 0, v );
                        //v.add( multi );

                    }
                }
            }
        }
        return biz;
    }
}
package com.taxiez.app;
导入android.app.Activity;
导入android.icu.util.Currency;
导入android.os.Bundle;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.ArrayAdapter;
导入android.widget.ImageView;
导入android.widget.ListView;
导入android.widget.TextView;
导入androidx.activity.ComponentActivity;
导入androidx.annotation.NonNull;
导入androidx.annotation.Nullable;
导入androidx.appcompat.app.appcompat活动;
导入org.w3c.dom.Document;
导入org.w3c.dom.Element;
导入org.w3c.dom.Node;
导入org.w3c.dom.NodeList;
导入org.w3c.dom.Text;
导入org.xml.sax.InputSource;
导入org.xml.sax.SAXException;
导入java.io.FileReader;
导入java.io.IOException;
导入java.io.Reader;
导入java.text.ParseException;
导入java.util.ArrayList;
导入java.util.HashMap;
导入java.util.LinkedHashMap;
导入java.util.List;
导入java.util.Locale;
导入java.util.Map;
导入javax.xml.parsers.DocumentBuilder;
导入javax.xml.parsers.DocumentBuilderFactory;
导入javax.xml.parsers.parserConfiguration异常;
导入io.grpc.Context;
导入静态com.taxiez.app.Items.getCurrencyLocaleMap;
导入静态com.taxiez.app.R.layout.activity_列表;
公共类列表扩展了AppCompatActivity{
ListView listViewP;
ListView listViewB;
ArrayList mpTitle=getInfo(getFilesDir()+“/tax_personal.xml”);
ArrayList mbTitle=getInfo(getFilesDir()+“/tax_business.xml”);
public lists()抛出ParserConfiguration异常、SAXException、ParseException、IOException{
}
//所以我们的图像和其他东西都被设置成数组
//现在在drawable中粘贴一些图像
公共静态组件活动新组件活动(){
返回新的androidx.activity.ComponentActivity(R.layout.content\u search);
}
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.content\u search);
listViewP=(ListView)findViewById(R.id.view\u personal);
listViewB=(ListView)findViewById(R.id.view\u business);
//现在创建一个适配器类
MyAdapter adapterP=新的MyAdapter(此为mpTitle);
listViewP.setAdapter(adapterP);
MyAdapter adapterB=新的MyAdapter(此,mbTitle);
listViewB.setAdapter(适配器B);
//这是我的错误。。。
//现在再次检查这个。。
//对于(int i=0;iArrayList<String> biz = null;
ArrayList<String> biz = new ArrayList<>();