我首先要说的是我对Android开发的新手。
我的问题是我如何更改以下示例以允许每个列表项左侧和右侧的文本。
我的目标是让每个列表项左侧都有一个项目描述,右边是该描述的数值。
我现在所拥有的是一个列表,显示我希望在每个项目的左侧显示的值。
主java活动(NewtestActivity.java):
public class NewtestActivity extends Activity {
String[] exampleList = {
"Item 1",
"Item 2",
"Item 3",
"Test 4",
"Item 5",
"Test 6",
"Item 7",
"Test 8"
//etc etc
};
@Override
public void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// Get an instance of your listview in code
ListView listview = (ListView) findViewById(R.id.list);
// Set the listview's adapter
listview.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, exampleList));
}
}
main.xml中:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<LinearLayout
android:orientation="horizontal"
android:layout_width="280dp"
android:layout_height="fill_parent"
>
<ImageView
android:src="@drawable/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:layout_marginLeft="5dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="14dp"
android:layout_marginLeft="5dp"
android:text="@string/app_name"
/>
</LinearLayout>
<ListView
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="200dp"
/>
</LinearLayout>
感谢您的帮助(:
答案 0 :(得分:2)
如果没有与您的问题的直接链接,您可以使用{{1}的LinearLayout
和android:drawableLeft
属性改进您的xml代码和第一个android:drawablePadding
(标题) }。
这使您可以将图标放在appName TextView的左侧。
答案 1 :(得分:0)
答案 2 :(得分:0)
像这样定义自定义适配器,并根据需要定义自定义布局xml文件。
import java.util.Vector;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
public class YourAdapter extends BaseAdapter{
private Context mContext;
private Vector mValuestobeShown;
private Vector mValuetext;
private Vector mValueNumber;
public YourAdapter (Context context, Vector text,Vector item, Vector number){
mContext = context;
mValuetext = text;
mValuestobeShown = item;
mValueNumber = number;
}
public int getCount() {
if(null != mValuestobeShown){
return mValuestobeShown.size();
}
return 0;
}
public Object getItem(int position) {
if(position < mValuestobeShown.size())
return mValuestobeShown.get(position);
else
return null;
}
public long getItemId(int position) {
return 0;
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder ;
if(convertView == null){
LayoutInflater li =(LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = li.inflate(R.layout.your_custom_layout, null);
holder = new ViewHolder();
holder.text = (TextView) convertView.findViewById(R.id.txt);
holder.item = (TextView) convertView.findViewById(R.id.item);
holder.num = (TextView) convertView.findViewById(R.id.num);
convertView.setTag(holder);
}else{
holder = (ViewHolder) convertView.getTag();
}
try{
holder.item.setText(mValueType.get(position).toString());
//set other values.....
}catch(Exception e){ }
return convertView;
}
class ViewHolder {
TextView text;
TextView item;
TextView num;
}
}