我有ListView
自己的适配器的自定义.我正在处理Button
我 ListView
的项目中的点击,我希望ListView
在此点击时看不见.
我不知道如何ListView
从适配器访问.
public class ScheduleArrayAdapter extends ArrayAdapter<ScheduleListItem> {
/*...*/
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater)c.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(id, null);
}
final ScheduleListItem o = items.get(position);
if (o != null) {
/*...*/
Button details=(Button)v.findViewById(R.id.btn_details);
details.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//HOW TO MAKE (R.id.lv_schedule) TO BECOME INVISIBLE HERE?
}
});
} …
Run Code Online (Sandbox Code Playgroud) 我想在我的android应用程序中使用AutoCompleteTextView.我知道如何使用简单的字符串数组,但我希望AutoCompleteTextView使用对象列表来执行完成.我的代码如下:
活动代码
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.search);
initialize();
ArrayAdapter<Student> adapter = new ArrayAdapter<Student>(this,
R.layout.dropdown_list_item, GetAllStudentsList());
searchBox.setAdapter(adapter);
searchBox.setThreshold(THRESHOLD_VALUE);
searchBox.setTextColor(Color.BLACK);
}
searchBox.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view,
int position, long arg3) {
//Here i will grab the Student object that user selected from drop-down
}
});
public ArrayList<Movies> GetAllStudentsList() {
//This method returns a ArrayList of <Student> type objects
}
Run Code Online (Sandbox Code Playgroud)
学生班对象有关于学生的信息ID,NAME,ADDRESS,MARKS
.
我知道AutoCompleteTextView需要一个String类型对象的数组来执行搜索操作.在我的情况下,我希望AutoCompleteTextView使用我的ArrayList在Student对象字段NAME的基础上执行完成.我不知道如何指定AutoCompleteTextView使用NAME字段学生对象.请帮我提供任何链接或一个小例子.
谢谢
我现在真的很困惑要学习哪一个.我是一名iPhone应用程序开发人员,现在正在学习Android开发.
我已经学会了如何使用ListView
带有静态字符串的字符串Adapter
.我习惯在iPhone中使用自定义单元格,主要用于显示TableView
s中的图像和文本等动态内容.
那么在Android中这样做的方法是什么?TableLayout
还是ListView
?
android custom-cell android-listview android-adapter android-tablelayout
我想使用切换来在两个不同的视图之间切换,但使用相同的视图RecyclerView
.基本上,一旦你切换,我想要RecyclerView
适配器调用,onCreateViewHolder()
但这次它将使用不同的布局项目文件.
是否notifydatasetchanged()
导致适配器重建?或者还有另一种方式吗?
android android-adapter notifydatasetchanged android-recyclerview
你能解释一下这种getView()
方法吗ArrayAdapter
?
我阅读了文档,它有三个参数:
position
:项目在我们想要的视图的项目的数据集的位置. convertView
:如果可能的话,重用旧视图.注意:在使用之前,应检查此视图是否为非null且类型是否合适.如果无法转换此视图以显示正确的数据,则此方法可以创建新视图.parent
:此视图最终将附加到的父级我理解了position
参数.就像他们说的那样,这意味着该项目的位置,已经请求了视图.
convertView
来自哪里.我见过很多例子,他们检查是否convertView
为null.如果is为null,则它们会对行布局的新实例进行膨胀,填充并返回它.我想我也已经知道了这一点,但还有一件事让我感到困惑.通过convertView
参数传递的布局是什么.如果初始化时传入的resource
参数是ArrayAdapter
?是返回的最后一个布局的缓存副本getView()
?
最后.什么是parent
参数做.我没有看到太多利用它的例子.他们中的大多数只是重复/膨胀行布局并返回它.
(我问,因为我的点击动画在我的ListView
.特别是这个旨在复制Spotify的下拉快速动作菜单.我的动画有点迟钝.在诊断了这个问题一段时间之后,我意识到这是因为我的getView()
方法需要花费一些时间才能完成,因为我在每次迭代中都在为一个新的行布局充气.有人建议缓存行布局,ViewHolder
其他一些例子指向重用convertView
参数,即仅膨胀一个行布局如果convertView
为null.)
java android android-arrayadapter android-listview android-adapter
我需要实现一个基于EditText
我的搜索功能RecyclerView
.键入时必须过滤列表.
这是代码:
DisplayAdapter.java这是适配器
public class DisplayAdapter extends RecyclerView.Adapter<DisplayAdapter.MyViewHolder>{
private List<DataHolder> displayedList;
public class MyViewHolder extends RecyclerView.ViewHolder{
public TextView english_d;
public MyViewHolder(View view){
super(view);
english_d = (TextView) view.findViewById(R.id.engword);
}
}
public DisplayAdapter(List<DataHolder> displayedList){
this.displayedList = displayedList;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int position) {
// create a layout
View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item, parent, false);
return new MyViewHolder(itemView);
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
DataHolder content = displayedList.get(position);
holder.english_d.setText(content.getEnglish());
}
@Override
public int …
Run Code Online (Sandbox Code Playgroud) 他们是通过使用ObservableList
新的数据绑定库和MVVM模式中"notifyItem(s)..."
的Adapter
类来避免使用类中的方法吗?
或者如果不是什么可能是最简单的方法绑定ObservableList
到RecyclerView
?
谢谢你的任何线索!
data-binding android mvvm android-adapter android-recyclerview
我正在开发一个应用程序,我需要在列表视图中实现单选按钮.我想实现一个列表视图,每行有一个单选按钮和两个文本视图.列表视图下方有一个"确定"按钮.
我所做的是创建了一个列表视图和一个自定义适配器.listview的代码如下:
<ListView
android:id="@+id/listview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:cacheColorHint="#00000000"
android:overScrollMode="never"
tools:ignore="NestedScrolling"
android:choiceMode="singleChoice" >
</ListView>
Run Code Online (Sandbox Code Playgroud)
我创建了一个自定义适配器布局:
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TableRow
android:layout_width="fill_parent"
android:layout_height="wrap_content"
tools:ignore="UselessParent" >
<RadioButton
android:id="@+id/radiobutton"
android:layout_width="0sp"
android:layout_height="wrap_content"
android:layout_weight=".1" />
<TextView
android:id="@+id/textview1"
android:layout_width="0sp"
android:layout_height="wrap_content"
android:layout_weight=".3" />
<TextView
android:id="@+id/textview2"
android:layout_width="0sp"
android:layout_height="wrap_content"
android:layout_weight=".3" />
</TableRow>
</TableLayout>
Run Code Online (Sandbox Code Playgroud)
片段的java代码如下:
ListView listView = (ListView) view.findViewById(R.id.listview);
// values is a StringArray holding some string values.
CustomAdapter customAdapter = new CustomAdapter (getActivity(), values);
listView.setAdapter(customAdapter );
listView.setOnItemClickListener(this);
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int …
Run Code Online (Sandbox Code Playgroud) android radio-button android-layout android-listview android-adapter
我正在使用RecyclerView作为我的数据列表的基础.我已经实现了基于ArraList的自定义RecyclerView.Adapter.从互联网上获取数据我正在运行的代码是:
public void addItems(List<Item> items){
final int size = data.size();
data.addAll(items);
notifyItemRangeInserted(size, items.size());
}
Run Code Online (Sandbox Code Playgroud)
问题是,在运行此代码后,我将自动滚动到列表的底部(最后一个元素现在可见)
有没有办法禁用它?找不到任何类似的问题.
相关信息:我的适配器有2个viewHolders - 对于位置0它有一个视图(viewType为0),对于其余的列表,它有viewType 1的视图
谢谢你的帮助!
罗伊
我有一个可以容纳图像的ListView.这取决于SDCARD中是否存在图像.
这是我的示例代码:
public class MainActivity extends Activity {
ListView mListView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mListView = new ListView(this);
setContentView(mListView);
String[] arr = new String[] {
"/example/images/1.jpg", "/example/images/2.jpg",
"/example/images/3.jpg", "/example/images/4.jpg",
"/example/images/5.jpg", "/example/images/6.jpg",
"/example/images/7.jpg", "/example/images/8.jpg",
"/example/images/9.jpg", "/example/images/1.jpg",
"/example/images/2.jpg", "/example/images/3.jpg",
"/example/images/4.jpg", "/example/images/5.jpg",
"/example/images/6.jpg", "/example/images/7.jpg",
"/example/images/8.jpg", "/example/images/9.jpg",
"/example/images/1.jpg", "/example/images/2.jpg",
"/example/images/3.jpg", "/example/images/4.jpg",
"/example/images/5.jpg", "/example/images/6.jpg",
"/example/images/7.jpg", "/example/images/8.jpg",
"/example/images/9.jpg", "/example/images/1.jpg",
"/example/images/2.jpg", "/example/images/3.jpg",
"/example/images/4.jpg", "/example/images/5.jpg",
"/example/images/6.jpg", "/example/images/7.jpg",
"/example/images/8.jpg", "/example/images/9.jpg"};
List<String> list = Arrays.asList(arr);
MyAdapter adapter = new MyAdapter(this, R.layout.listitem_imv, list);
mListView.setAdapter(adapter);
}
class MyAdapter extends …
Run Code Online (Sandbox Code Playgroud) android ×10
android-adapter ×10
android-view ×1
autocomplete ×1
custom-cell ×1
data-binding ×1
filter ×1
java ×1
mvvm ×1
radio-button ×1
search ×1