Android 未执行自定义ArrayAdapter的getView()方法

Android 未执行自定义ArrayAdapter的getView()方法,android,android-listview,android-arrayadapter,Android,Android Listview,Android Arrayadapter,在我的项目中,我必须显示报告列表,因此在活动中,我编写以下代码: super.onCreate(savedInstanceState); setContentView(R.layout.report_full); List<Employee> data = new ArrayList<Employee>(); Employee eg=new Employee(); ListView li=(ListV

在我的项目中,我必须显示报告列表,因此在
活动中,我编写以下代码:

super.onCreate(savedInstanceState);
        setContentView(R.layout.report_full);
            List<Employee> data = new ArrayList<Employee>();
        Employee eg=new Employee();
        ListView li=(ListView)findViewById(R.id.report_list);
        Intent myIntent = getIntent(); // this is just for example purpose
        Bundle b=myIntent.getExtras();
        Log.i("User Report", b.toString());
        Toast.makeText(getApplicationContext(), "User Report", Toast.LENGTH_LONG).show();
        if(b !=null) {
                String username = b.getString("username");
                String userid = b.getString("userid");
                String startdate = b.getString("startdate");
                String enddate = b.getString("enddate");
                String mode=b.getString("mode");
                Log.i("LOOP", userid+"-"+startdate+"-"+enddate+"-"+mode);
                data=eg.getReports(username, userid, startdate, enddate,mode);
                Log.i("Get Report",data.toString());
                li.setAdapter(new UserReportArrayadapter(this, data));
            }
    private LayoutInflater inflater;
    private List<Employee> data;
    public UserReportArrayadapter(Context context, List<Employee> objects) {
        super(context, R.layout.list_time_mode_report, objects);
        Log.i("User Report by HoursAdapter","Inside constructor");
        inflater = LayoutInflater.from(context);
        this.data = objects;
}

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return 1;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder;
        Log.i("User Report ","Inside getView");
        //if it's not create convertView yet create new one and consume it
          if(convertView == null){
            //instantiate convertView using our employee_list_item
              convertView = inflater.inflate(R.layout.list_time_mode_report, null);
              //get new ViewHolder
                holder =new ViewHolder();
               //get all item in ListView item to corresponding fields in our ViewHolder class
                 holder.project=(TextView)convertView.findViewById(R.id.time_entry_1);
                holder.hours=(TextView)convertView.findViewById(R.id.time_entry_2);

              //set tag of convertView to the holder
              convertView.setTag(holder);
         }
        //if it's exist convertView then consume it
          else {
               holder =(ViewHolder) convertView.getTag();
           }      
             //set data to holder
          Log.i("User Report by HoursAdapter:data",data.get(position).getData());
            holder.project.setText(data.get(position).getData());
            holder.hours.setText(data.get(position).getNo_of_hrs());

           return convertView;
      }
         //ViewHolder class that hold over ListView Item
         static class ViewHolder{
             TextView hours;
             TextView project;


        }
在日志中,仅显示
“用户报告”
“内部getView”
。已调用构造函数,但未调用
getView()
。运行此应用程序时,屏幕上没有显示任何项目。为什么会这样

还有我的报告_full.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
  xmlns:android="http://xyz.com"
  android:background="#000000"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">

    <RelativeLayout 
    android:background="@drawable/col_bg_top" 
    android:id="@+id/report_title" 
    android:layout_alignParentTop="true" 
    android:layout_width="fill_parent" 
    android:layout_height="50sp">


    </RelativeLayout>

    <!-- WHITE LINES -->
    <LinearLayout 

    android:layout_width="fill_parent" 
    android:layout_height="1sp" 
    android:orientation="vertical" 
    android:id="@+id/white_line_top" 
    android:layout_below="@+id/report_title">
    </LinearLayout>

    <!-- MAIN LIST VIEW -->
    <ListView
        android:layout_below="@+id/report_list"
        android:id="@+id/report_list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/buttons_holder">
    </ListView>

    <!-- WHITE LINES -->
    <LinearLayout 
    android:background="#9d9d9d"
    android:layout_width="fill_parent" 
    android:layout_height="1sp" 
    android:orientation="vertical" 
    android:id="@+id/white_line_bottom" 
    android:layout_above="@+id/buttons_holder">
    </LinearLayout>

    <LinearLayout 
        android:baselineAligned="false"
    android:layout_alignParentBottom="true" 
    android:weightSum="1.0"
    android:orientation="horizontal" 
    android:id="@+id/buttons_holder"  
    android:layout_height="wrap_content" 
    android:layout_width="fill_parent"
    >

        <!-- HOME BUTTON -->
        <RelativeLayout 
        android:background="@drawable/col_bg_highlights"
        android:layout_weight="0.33"
        android:layout_width="wrap_content" 
        android:layout_height="62sp" android:padding="3sp">


            <TextView 
            android:id="@+id/txt_btn_home" 
            android:textColor="#FFFFFF" 
            android:text="HOME" 
            android:layout_width="wrap_content" 
            android:textSize="9sp" 
            android:layout_height="wrap_content" 
            android:layout_centerHorizontal="true">
            </TextView>

            <ImageButton 
            android:background="#00000000" 
            android:id="@+id/btn_home" 
            android:scaleType="fitCenter" 
            android:layout_height="42dp" 
            android:layout_width="45sp" 
            android:padding="3sp" 
            android:src="@drawable/home_button" 
            android:layout_below="@+id/txt_btn_home"
            android:layout_centerHorizontal="true"
            ></ImageButton>

        </RelativeLayout>

<!-- Dividing Line -->
<RelativeLayout 
android:layout_width="1sp" 
android:layout_height="62sp" 
android:background="#9d9d9d"
></RelativeLayout>

        <!-- ACTIVITY BUTTON -->
        <RelativeLayout 
        android:layout_width="wrap_content" 
        android:layout_height="62sp" android:padding="3sp" android:layout_weight="0.34">

            <TextView 
            android:id="@+id/txt_btn_activity" 
            android:textColor="#FFFFFF" 
            android:text="ACTIVITY" 
            android:layout_width="wrap_content" 
            android:textSize="9sp" 
            android:layout_height="wrap_content" 
            android:layout_centerHorizontal="true">
            </TextView>

            <ImageButton 
            android:background="#00000000" 
            android:id="@+id/btn_activity" 
            android:scaleType="fitCenter" 
            android:layout_height="42dp" 
            android:layout_width="45sp" 
            android:padding="3sp" 
            android:src="@drawable/activity_button" 
            android:layout_below="@+id/txt_btn_activity"
            android:layout_centerHorizontal="true"
            ></ImageButton>


        </RelativeLayout>

<!-- Dividing Line -->
<RelativeLayout 
android:layout_width="1sp" 
android:layout_height="62sp" 
android:background="#9d9d9d"
></RelativeLayout>

        <!-- REPORTS BUTTON -->
        <RelativeLayout 
        android:layout_width="wrap_content" 
        android:layout_height="62sp" android:padding="3sp" android:layout_weight="0.34">
            <TextView 
            android:id="@+id/txt_btn_report" 
            android:textColor="#FFFFFF" 
            android:text="REPORTS" 
            android:layout_width="wrap_content" 
            android:textSize="9sp" 
            android:layout_height="wrap_content" 
            android:layout_centerHorizontal="true">
            </TextView>

            <ImageButton 
            android:background="#00000000" 
            android:id="@+id/btn_report" 
            android:scaleType="fitCenter" 
            android:layout_height="42dp" 
            android:layout_width="45sp" 
            android:padding="3sp" 
            android:src="@drawable/report_button" 
            android:layout_below="@+id/txt_btn_report"
            android:layout_centerHorizontal="true"
            ></ImageButton>

        </RelativeLayout>

    </LinearLayout>

</RelativeLayout>

在您的代码中,
getView()
方法应该至少被调用过一次(
getCount
方法返回
1
)。首先,
getCount()
方法应返回
数据
对象中的视图数:

@Override
public int getCount() {
    return this.data.size();
}
检查在传递到自定义
ArrayAdapter
的构造函数中的
数据
对象中是否确实有一些信息。也许您还可以添加布局文件,其中包含
ListView
R.layout.report\u full
),以查看是否有其他视图隐藏了您的
ListView


您是否在日志中看到了“循环”和“获取报告”

是的,我在“循环”和“获取报告”中看到了一些信息。我还有一个疑问。我们是否可以将一个布局重新用于另一个活动。@Sridhar我不知道“重新使用”是什么意思。如果您指的是使用
R.layout.some\u layout
在两个以上的位置,这是可以的(但是为了更好的代码可读性,您可能应该有两个文件)。您是否实现了我回答中的
getCount
方法?“重用”我的意思是,我已经在另一个包含ListView的活动中使用了R.layout.report\u full。但是我在这个活动中使用了相同的R.layout.report\u full。@Sridhar没关系,编辑你的问题并添加
R.layout.report\u full
xml布局文件。@Sridhar你的
ListView
id
报告列表,你在上面设置了规则
android:layou lower=“@+id/report\u list”
?!?您现在将
列表视图设置在其自身下方。更正布局并正确定位
列表视图