AI开发实战7-列表显示框(Listview)的定制

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xjbclz/article/details/77600387

6 列表显示框(Listview)的定制

     AppInventor2提供的列表显示框,用户可以设置是否在其上显示搜索框,但搜索框中显示的提示字符串为英文,可修改为中文。

    列表提示框的源码文件是ListView.java,修改的代码如下:

    //txtSearchBox.setHint("Searchlist...");

     txtSearchBox.setHint("搜索列表...");

    点击列表选择框时,也会显示列表提示框,列表选择框的源码文件是ListPicker.java,点击列表选择框,调用ListPickerActivity显示列表框,修改ListPickerActivity.java的代码如下:

    //txtSearchBox.setHint("Searchlist...");

    txtSearchBox.setHint("搜索列表...");

最终实现效果如下:

Android系统还提供了其它形式的列表显示框,如下图所示:

在每个Item的最右边有个单选按钮,想要实现此种形式的单选按钮,也需要修改ListView.java的代码:

//标识是否使用具有单选按钮的列表显示框

private boolean singleChoice = true;

public void setAdapterData(){

if(!singleChoice){

  //App Invetor2默认提供的列表显示框

     adapter = new ArrayAdapter<Spannable>(container.$context(),android.R.layout.simple_list_item_1,

       itemsToColoredText());

} else {

  //创建具有单选按钮的列表显示框,布局文件和上面不同

     adapter = new ArrayAdapter<Spannable>(container.$context(),android.R.layout.simple_list_item_single_choice,

     itemsToColoredText());

     //Android系统还支持在列表框中的多选,在此设置为单选模式     、、CHOICE_MODE_SINGLE = 1

     view.setChoiceMode(1);

    }

   view.setAdapter(adapter);

   

   if (!singleChoice){

      adapterCopy = new ArrayAdapter<Spannable>(container.$context(),android.R.layout.simple_list_item_1);

    }else{

      adapterCopy = new ArrayAdapter<Spannable>(container.$context(),android.R.layout.simple_list_item_single_choice);

    }

   

   for (int i = 0; i < adapter.getCount(); ++i) {

     adapterCopy.insert(adapter.getItem(i), i);

    }

  }

最终的实现效果如下:

猜你喜欢

转载自blog.csdn.net/xjbclz/article/details/77600387