0

データ型を返すasp.netで開発されたWebサービスを使用していますList (List(of String)).Ksoap2 APIを使用して上記のWebサービスを呼び出し、そこから次のような結果を取得しています:

Web サービスから受け取った結果:

anyType{string=username1; string=username2; string=username3; string=username4; }
anyType{string=Text_news1; string=Text_News2; string=Text_News3; string=Text_News4; }
anyType{string=01-Apr-2013; string=01-Apr-2013; string=02-Apr-2013; string=02-Apr-2013; }

上記の最初の結果はニュースを投稿したユーザーのユーザー名に関するもので、2 番目の結果は Text_News 自体に関するもので、3 行目はその text_News がユーザーによって投稿された日付、および私が取得するために使用したコードに関するものです。上記の結果は次のとおりです。

doInBackground(String...params)メソッドで使用しました

List<String> data= new ArrayList<String>();
    SoapObject result = (SoapObject)envelope.bodyIn;
    if(result != null)
    {
        data.add(((SoapObject)result.getProperty(0)).getPropertyAsString(0));
            data.add(((SoapObject)result.getProperty(0)).getPropertyAsString(1));
            data.add(((SoapObject)result.getProperty(0)).getPropertyAsString(2));
    }

結果は次の方法で処理され、上記の結果が得られます

protected void onPostExecute(List<String> result){
dialog.dismiss();
if(!result.isEmpty())
 {
   System.out.println("First Element :"+result.get(0));
   System.out.println("Second Element :"+result.get(1));
   System.out.println("Third Element :"+result.get(2));
}
}

しかしArrayAdapter、次の形式でリストビューにデータを挿入するために使用される

Username1    Text_News1   date1   to be the first Item in listView 
userName2    Text_News2   date2   to be the second item in listView
.........
.......

どんな助けでも大歓迎です。

4

1 に答える 1

1

「Row」と言って、自分用のオブジェクトを定義します。

Class Row{
    String text;
    String date;
    ....

次にArrayList、応答を解析しながら、これらのオブジェクトの を作成します。

List<Row> rows = new ArrayList<Row>();
for (all your parsed string data)
{
    Row row = new Row();
    row.setText("your parsed text");
    row.setDate("your parsed date");
    rows.add(row); 
}

最後にアダプターを作成します。

private class CustomAdapter extends ArrayAdapter<Row>
{   
    private ArrayList<Row> list;

    public CustomAdapter(Context context, int textViewResourceId, ArrayList<Row> rowsList) 
    {
        super(context, textViewResourceId, rowsList);
         this.list = new ArrayList<SubTask>();
         this.list.addAll(rowsList);
    }

    public View getView(final int position, View convertView, ViewGroup parent)
    {
        ViewHolder holder = new ViewHolder();

            LayoutInflater inflator = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = inflator.inflate(R.layout.list_item_new, null);

            holder.text = (TextView) convertView.findViewById(R.id.tvText);
            holder.date = (TextView) convertView.findViewById(R.id.tvDate); 

            holder.text.setText(rows.get(position).getText());
            holder.date.setText(rows.get(position).getDate());
            return convertView;
    }
}

あなたのViewHolder場合:

static class ViewHolder 
{
     TextView text;
     TextView date;
}

list_item_newまた、リスト アイテムのカスタム レイアウト ファイルとなるファイルを作成することを忘れないでください。

于 2013-04-03T23:20:38.760 に答える