Android中ListView中的行格式

Android中ListView中的行格式,android,listview,Android,Listview,我有一个列表视图来显示用户信息。您可以在此处查看列表中的内容: String[]userAttributes=新字符串[]{ “用户名:”+用户名, “Vorname:”+userVorname, “名称:”+用户名, “Geburtsdatum:”+userGebdat, “地址”, “Straße:“+userStrasse, “Hausnr:”+userHausnr, “Ort:”+userOrt, Postleitzahl:+userPlz, “Einsatzdaten”, “Eins

我有一个
列表视图
来显示用户信息。您可以在此处查看列表中的内容:

String[]userAttributes=新字符串[]{
“用户名:”+用户名,
“Vorname:”+userVorname,
“名称:”+用户名,
“Geburtsdatum:”+userGebdat,
“地址”,
“Straße:“+userStrasse,
“Hausnr:”+userHausnr,
“Ort:”+userOrt,
Postleitzahl:+userPlz,
“Einsatzdaten”,
“Einsatzort:”+userEinsatzort,
“Einsatzland:+userEinsatzland,
“Kontaktmöglichkeiten”,
“Skype:+userSkype,
“Handynr:”+userHandynr,
“电子邮件:”+用户电子邮件,
};使用自定义适配器

在活动或片段中,使用

public class YourActivty extends Activity {
   private CustomAdapter<String> userListViewAdapter;


  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.your_layout);
    userListViewAdapter = new CustomAdapter(this, Arrays.asList(userAttributes));
    listview.setAdapter(userListViewAdapter);
  }

  class CustomAdapter extends ArrayAdaptery<String> { 

   private Context context;
   private String[] data;
   private String TAG = "BulsListAdapter";

   public CustomAdapter (Context context, String[] data) {
        super(context, R.layout.your_list_item, data);
        this.context = context;
        this.data= data;
    }

    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        if (convertView == null) {
            LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = inflater.inflate(R.layout.your_list_item, parent, false);
        }

        final TextView textViewInItem = (TextView) mView.findViewById(R.id.textViewInItem );

      String myData = data[position];
      if (myData.startsWith("Adresse") || myData.startsWith("Einsatzdaten") || myData.startsWith("Kontaktmöglichkeiten")) {
       textViewInItem.setColor(...);
       SpannableString content = new SpannableString(myData);
       content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
       textViewInItem.setText(content);

      } else {
       textViewInItem.setText(myData);
      }
   return convertView;
   }
 } 
}
公共类YourActivity扩展活动{
私有CustomAdapter userListViewAdapter;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.your_布局);
userListViewAdapter=新的CustomAdapter(这是Arrays.asList(userAttributes));
setAdapter(userListViewAdapter);
}
类CustomAdapter扩展了ArrayAdaptery{
私人语境;
私有字符串[]数据;
私有字符串TAG=“bulslistatadapter”;
公共CustomAdapter(上下文上下文,字符串[]数据){
super(上下文、R.layout.your_list_项、数据);
this.context=上下文;
这个。数据=数据;
}
@凌驾
公共视图getView(最终整数位置、视图转换视图、视图组父视图){
if(convertView==null){
LayoutFlater充气器=(LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u服务);
convertView=充气机。充气(R.layout.your_list_项,父项,false);
}
final TextView textViewInItem=(TextView)mView.findViewById(R.id.textViewInItem);
字符串myData=数据[位置];
if(myData.startsWith(“adrese”)| myData.startsWith(“Einsatzdaten”)| myData.startsWith(“Kontaktmöglichkeiten”)){
textViewInItem.setColor(…);
SpannableString content=新的SpannableString(myData);
setSpan(新的下划线span(),0,content.length(),0);
textViewInItem.setText(内容);
}否则{
textViewInItem.setText(myData);
}
返回视图;
}
} 
}

当然,还可以使用适配器创建一个新类,或者将其包含到现有类中

这是我的解决方案,非常有效

//将ArrayAdapter设置为ListView的适配器。
setAdapter(新的ArrayAdapter(此,R.layout.user\u listview\u行,userAttributesList){
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
TextView userListView_row=(TextView)super.getView(position,convertView,parent);
如果(userListView_row.getText().toString().equals(“ADRESE”)| userListView_row.getText().toString().equals(“Einsatzdaten”)| userListView_row.getText().toString().equals(“Kontaktmöglichkeiten”)| userListView_row.getText().toString().equals(“Benutzerdaten”)){
//下划线字符串
SpannableString SpannableString=new SpannableString(userListView_row.getText().toString());
spannableString.setSpan(新的下划线span(),0,userListView_row.length(),0);
userListView_row.setText(spannableString);
//更改字符串颜色
userListView_row.setTextColor(getResources().getColor(R.color.colorPrimary));
//设置文本大小
userListView_row.setTextSize(TypedValue.COMPLEX_UNIT_SP,18);
}否则{
//更改字符串颜色
userListView_row.setTextColor(getResources().getColor(R.color.colorGrey));
//设置文本大小
userListView\u row.setTextSize(TypedValue.COMPLEX\u UNIT\u SP,16);
}
返回userListView_行;
}

});我添加了有问题的适配器,因为它与您的解决方案有点不同。如何使用适配器解决方案实现这一点?谢谢:)顺便说一句,我在活动中直接使用了适配器,没有任何额外的类更新。当然,您也可以使用其他解决方案,但这是一个快速而简单的解决方案。返回语句丢失并且我认为这对我的活动不起作用:/。我已经为你添加了我的全部活动