好久没更新博客了,最近比较忙,在学android的基础知识,疑惑也不是很多,知道今晚在重写BaseAdapter的时候遇到了一个平常都不会注意的小问题
请看下面代码:
定义User_Type类
package com.example.zhao.standardview; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; /** * Created by zhao on 2017/5/5. */ public class User_type { private String muserName; private String muserAddress; public User_type(String Name,String Address) { muserAddress = Address; muserName = Name; } public String getUserName() { return muserName; } public void setUserName(String userName) { this.muserName = userName; } public String getUserAddress() { return muserAddress; } public void setUserAddress(String userAddress) { this.muserAddress = userAddress; } }重写BaseAdapter
package com.example.zhao.standardview; import android.content.Context; import android.text.Layout; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView; import java.util.ArrayList; import java.util.List; /** * Created by zhao on 2017/5/5. */ public class User_Adapter extends BaseAdapter { List<User_type> user_types ; Context context; public User_Adapter (Context mcontext, List<User_type> muser_type) { this.user_types = muser_type; this.context = mcontext; } @Override public int getCount() { return user_types.size(); } @Override public Object getItem(int position) { return user_types.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { convertView = LayoutInflater.from(context).inflate(R.layout.user_layout,null); TextView textView1 = (TextView) convertView.findViewById(R.id.textView1); TextView textView2 = (TextView) convertView.findViewById(R.id.textView2); textView1.setText(user_types.get(position).getUserName()); textView2.setText(user_types.get(position).getUserAddress()); return convertView; } } UI界面 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:text="TextView" android:textSize="26dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/textView1" android:layout_weight="1" android:drawableLeft="@android:drawable/btn_star" /> <TextView android:text="TextView" android:textSize="26dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/textView2" android:layout_weight="1"/> </LinearLayout>主类 package com.example.zhao.standardview; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.os.Build; import android.support.annotation.RequiresApi; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.text.Html; import android.text.SpannableStringBuilder; import android.text.Spanned; import android.text.style.ClickableSpan; import android.text.style.ImageSpan; import android.view.View; import android.widget.ArrayAdapter; import android.widget.Spinner; import android.widget.TextView; import android.widget.Toast; import java.util.ArrayList; import static android.text.Html.FROM_HTML_MODE_LEGACY; public class MainActivity extends AppCompatActivity { @RequiresApi(api = Build.VERSION_CODES.N) @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /* showTextView(); showspinner();*/ showspinner2( ); } private void showspinner2( ) { Spinner spinner = (Spinner) findViewById(R.id.spinner); ArrayList<User_type> users = new ArrayList<User_type>(); users.add(new User_type("张三","山东")); users.add(new User_type("李四","山西")); users.add(new User_type("王五","陕西")); users.add(new User_type("刘海","江苏")); User_Adapter adapter = new User_Adapter(this,users); spinner.setAdapter(adapter); } }刚写完的时候,一直出错,改了半个多小时也不对,最后想到问题出现在UI界面的代码上,我在第一个TextView上画了一个图片竟然是gif格式的,导致安装apk后,应用程序老是报错,所以以后要注意,图片最好用png格式,gif格式千万别用