Android uper.android.view.inflate 异常

Android uper.android.view.inflate exception

我在 android 列表 activity 中遇到问题。

这是我的 class :

      package com.zheek.story;

  import java.util.ArrayList;

  import android.app.ListActivity;
  import android.os.Bundle;
  import android.util.Log;
  import android.view.LayoutInflater;
  import android.view.View;
  import android.view.ViewGroup;
  import android.widget.ArrayAdapter;
  import android.widget.TextView;
  import android.widget.Toast;
  import database.Database;

  public class list extends ListActivity{

private Database db;
private ArrayList<String> name = new ArrayList<String>();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.list);
    db = new Database(this);
    db.database();

    refresher();
    Toast.makeText(this, name.get(1), Toast.LENGTH_LONG).show();
    setListAdapter(new listview());
}
 ////////////////////////////////////////////custom view for list
  class listview extends ArrayAdapter<String>{

    public listview(){
        super(getApplicationContext(),R.layout.viewlist,name);

    }
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater in = getLayoutInflater();
        View row = in.inflate(R.layout.viewlist, parent,false);
        TextView txt = (TextView) row.findViewById(R.id.txtName);
        TextView teedad = (TextView) row.findViewById(R.id.txtName1);

        txt.setText(name.get(position));
        teedad.setText(name.get(position));
        //txt.setTypeface(MainActivity.font);

        return row;
    }

 }

   private void refresher(){ /////////refresh list from database
        db.open();

     int count = db.count();
     Log.i("previus for","previus for");
     for (int i = 0; i < count; i++) {
         name.add(db.show(i,1));    
     }
     db.close();
     }
 }

这是我的布局:

    <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/main_txt_layout"
  android:layout_width="match_parent"
  android:layout_height="match_parent">

  <ListView
     android:id="@android:id/list"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
      android:layout_alignParentTop="true" >
 </ListView>

</RelativeLayout>

这是每行的自定义布局:

       <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:id="@+id/RelativeLayout1"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="vertical" >

<TextView
    android:id="@+id/txtName"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:layout_marginRight="86dp"
    android:layout_marginTop="16dp"
    android:text="Medium Text"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView
    android:id="@+id/txtName1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/txtName"
    android:layout_alignBottom="@+id/txtName"
    android:layout_alignParentLeft="true"
    android:text="Large Text"
    android:textAppearance="?android:attr/textAppearanceLarge" />

</RelativeLayout>

这个 activity 在 API 19 和更高版本上没有 运行。我 运行 在 API 16 和 运行 上正确.

 android.view.InflateException: Binary XML file line #20: Error inflating class android.widget.ListView

尝试使用 Fragment 而不是 Activity。使用 Fragments,您可以在多个屏幕上重复使用布局。

您可以在普通 activity 中使用列表视图,而不是带有 setContentView 的列表activity。这个列表视图应该是可重用的。

我把它们设置为没有操作栏,所以问题解决了。

 android:theme="@android:style/Theme.Holo.NoActionBar" 

尝试在新项目中更新 android SDK 并检查结果。可能是您的 sdk 无法为 API 创建 19.I 希望它对您有用。

尝试在新项目中更新 android SDK 并检查结果。可能是您的 sdk 无法为 API 创建 19.I 希望它对您有用。