Android ListView没有';不显示结果,但传递代码

Android ListView没有';不显示结果,但传递代码,android,android-widget,Android,Android Widget,我有ListView的行(ListView在LinearLayout内),如 我把适配器设置为 SimpleAdapter m=new SimpleAdapter( data ); listView.setAdapter(m); 数据是String[]data=newstring[]{“test”,“test_1”} 但清单上没有;我什么也没表现出来。我调试过,正常通过,但没有显示。有什么问题吗 public View getView(int pos

我有ListView的行(ListView在LinearLayout内),如

我把适配器设置为

        SimpleAdapter m=new SimpleAdapter( data );
            listView.setAdapter(m);
数据是
String[]data=newstring[]{“test”,“test_1”}
但清单上没有;我什么也没表现出来。我调试过,正常通过,但没有显示。有什么问题吗

  public View getView(int position, View convertView, ViewGroup parent) {

  View view = convertView;

  if(view == null){
    LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    view = inflater.inflate(R.layout.row, null);
  }    

  return view;
} 
使用以下命令修改getView:

  if(convertView == null){
    LayoutInflater inflater (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    convertView = inflater.inflate(R.layout.row, null);
  }   TextView t = (TextView) convertView.findViewById(your text view); t.setText(...); return convertView;
在这里,要对行进行充气,您不需要设置行的内容。。使用convertiview检索文本视图,使用作为参数传递给getView方法的位置调用getItem,并设置文本

使用以下命令修改getView:

  if(convertView == null){
    LayoutInflater inflater (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    convertView = inflater.inflate(R.layout.row, null);
  }   TextView t = (TextView) convertView.findViewById(your text view); t.setText(...); return convertView;
在这里,要对行进行充气,您不需要设置行的内容。。使用convertiview检索文本视图,使用作为参数传递给getView方法的位置调用getItem,然后设置文本。

我认为getView()需要一些工作。您并没有对传入的数据进行任何处理。试试这个:

public View getView(int position, View convertView, ViewGroup parent) {

    View v;
    if (convertView == null)
        v = LayoutInflater.from(context).inflate(R.layout.row, parent, false);
    else
        v = convertView;

    TextView text = (TextView) v.findViewById(R.id.txChoice);
    text.setText( list[position] );     

    return v;
}我认为您的getView()需要做一些工作。您并没有对传入的数据进行任何处理。试试这个:

public View getView(int position, View convertView, ViewGroup parent) {

    View v;
    if (convertView == null)
        v = LayoutInflater.from(context).inflate(R.layout.row, parent, false);
    else
        v = convertView;

    TextView text = (TextView) v.findViewById(R.id.txChoice);
    text.setText( list[position] );     

    return v;

}

您也可以尝试以下方法:

public View getView(int position, View convertView, ViewGroup parent) {

          ViewHolder holder;

          if(view == null)
          {
                   LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                   convertView = mInflater.inflate(R.layout.row, null);
                   holder = new ViewHolder();

                   holder.txtChoice=(TextView)convertView.findViewById(R.id.txtChoice);                 

          }
          else
                   holder=(ViewHolder)convertView.getTag();     

          holder.textChoice.setText(lis[position]));    

          return view;
        }

        static class ViewHolder
        {       
            TextView txtChoice;        
        }

您也可以尝试以下方法:

public View getView(int position, View convertView, ViewGroup parent) {

          ViewHolder holder;

          if(view == null)
          {
                   LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                   convertView = mInflater.inflate(R.layout.row, null);
                   holder = new ViewHolder();

                   holder.txtChoice=(TextView)convertView.findViewById(R.id.txtChoice);                 

          }
          else
                   holder=(ViewHolder)convertView.getTag();     

          holder.textChoice.setText(lis[position]));    

          return view;
        }

        static class ViewHolder
        {       
            TextView txtChoice;        
        }

和你发布的代码一样,我已经试过了。 而且跑得很好

我在活动和xml中使用了相同的适配器类

在我的TestThis.java文件中

我使用了您的适配器类,并且 我写过,

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // setContentView(R.layout.maintwiter);

        String[] data=new String[]{"test","test_1"};
        SimpleAdapter m=new SimpleAdapter( data );
        ListView listView = new ListView(this);
        listView.setAdapter(m); 
        setContentView(listView);
    }
但仍然需要在getView()方法中将字符串数组中的数据设置为文本视图

老兄,它给了我一个2行列表的结果


与您发布的代码相同,我已经尝试过了。 而且跑得很好

我在活动和xml中使用了相同的适配器类

在我的TestThis.java文件中

我使用了您的适配器类,并且 我写过,

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // setContentView(R.layout.maintwiter);

        String[] data=new String[]{"test","test_1"};
        SimpleAdapter m=new SimpleAdapter( data );
        ListView listView = new ListView(this);
        listView.setAdapter(m); 
        setContentView(listView);
    }
但仍然需要在getView()方法中将字符串数组中的数据设置为文本视图

老兄,它给了我一个2行列表的结果


在getView()中使用列表对象的位置?在getView()中使用列表对象的位置?