左右对齐在一个ListView中
我正在动态设置listView
。 我将从parse.com
收到每行显示的两件事。 我希望第一件事是左对齐和蓝色,第二件事是右对齐和红色。 我将有两个数组, firstArray
和secondArray
。 我找到了很多方法来做到这一点,但没有动态。 我该怎么做呢,或者我可以用xml
做到这一点?
更新
这是我在@ t0s发布的教程之后的xml
和我的java
ListView list = (ListView) findViewById(R.id.mylist); ArrayAdapter listAdapter = new ArrayAdapter(MainActivity.this, R.layout.mylist, namesArray); list.setAdapter(listAdapter); //find my objects off parse, and call this method private String display(Object name, Object record, ArrayAdapter listAdapter) { String fightCard = (name).toString(); namesArray.add((name).toString() +" " + (record).toString()); return fightCard; }
好吧,我的代码很乱。 检查这里的教程是[非常简单]
好的Chad在这里查看代码:
主要活动 :
package org.example.chad; import java.util.ArrayList; import android.app.ListActivity; import android.os.Bundle; public class MainActivity extends ListActivity { private ArrayList data = new ArrayList (); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //create Objects DataItem obj1 = new DataItem("name1", "record1"); DataItem obj2 = new DataItem("name2", "record2"); DataItem obj3 = new DataItem("name3", "record3"); DataItem obj4 = new DataItem("name4", "record4"); DataItem obj5 = new DataItem("name5", "record5"); //add the to ArrayList data.add(obj1); data.add(obj2); data.add(obj3); data.add(obj4); data.add(obj5); CustomAdapter adapter = new CustomAdapter(this, R.layout.row, data); setListAdapter(adapter); }
}
main.xml :
DataItem :
package org.example.chad; public class DataItem { private String name; private String record; public DataItem(){ } public DataItem(String n, String r ){ this.name = n; this.record = r; } public String getname() { return name; } public void setname(String name) { this.name = name; } public String getrecord() { return record; } public void setrecord(String record) { this.record = record; }
}
CustomAdapter:
package org.example.chad; import java.util.ArrayList; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.TextView; public class CustomAdapter extends ArrayAdapter { private ArrayList objects; public CustomAdapter(Context context, int textViewResourceId, ArrayList objects) { super(context, textViewResourceId, objects); this.objects = objects; } @Override public View getView(int position, View convertView, ViewGroup parent) { View v = convertView; if (v == null) { LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); v = inflater.inflate(R.layout.row, null); } DataItem i = objects.get(position); if (i != null) { TextView nameView = (TextView) v.findViewById(R.id.name); TextView recordView = (TextView) v.findViewById(R.id.record); if (nameView != null){ nameView.setText(i.getname()); } if (recordView != null){ recordView.setText(i.getrecord()); } } return v; } }
和row.xml :
几个小时后,我会添加一些评论。 结果就在这里
如果我没有弄错你必须扩展BaseAdapter
类,以便为ListView提供自定义适配器,则无法在不创建自定义适配器的情况下将两个数组项添加到ListView。
这是一个教程。
并不像它看起来那么难。 希望能帮助到你。