我正在开发具有自定义布局列表视图如下应用:
它有4个RadioButtons中RadioGroup和TextView.实际上,它将显示为question(TextView)和answers(RadioButtons)列表.上面的视图在我的自定义适配器中膨胀了ArrayAdapter<Question>.
问题是,我应该如何维护RadioButtons我的自定义状态Adapter?当RadioButtonis pressed/checked和list向下滚动时,会adapter自动回收视图并RadioButton丢失状态.
第一条遵循:http: //www.vogella.de/articles/AndroidListView/article.html.
以上链接使用a CheckBox,以类似的方式我想使用RadioGroup(RadioButtons)代替CheckBoxes.
android radio-button android-arrayadapter android-listview custom-adapter
我正在尝试从编辑文本到列表视图中获取用户输入,我已经看到了这个类似问题的答案,但我无法弄明白
我试过这个,没有从IDE收到任何错误,但它不起作用
public class ListtestActivity extends Activity {
/** Called when the activity is first created. */
Button bt;
EditText et;
TextView tv;
ListView lv;
ArrayAdapter<String> adapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
bt = (Button) findViewById(R.id.button1);
et = (EditText) findViewById(R.id.editText1);
tv = (TextView) findViewById(R.id.textView1);
lv = (ListView) findViewById(R.id.listView1);
String input = et.getText().toString();
String[] values = new String[] {"", input};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, values);
lv.setAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)
尝试以下也
public class ListtestActivity extends Activity {
ArrayAdapter<String> …Run Code Online (Sandbox Code Playgroud) 我ArrayAdapter使用重写getView()方法扩展了一个来填充我的ListView对象,但是适配器会从ArrayList我传递给它的前两个或三个对象中获取,然后只需在列表的整个长度上以看似随机的顺序重复这些对象.此外,当我在其中向上和向下滚动时ListView,某些行会从一个列表项更改为另一个列表项.该ArrayList<Credit>对象从JSONObject填充,据我所知,在传递给对象之前是正确的ArrayAdapter.
我的习惯 ArrayAdapter
private class CreditArrayAdapter extends ArrayAdapter<Credit> {
private ArrayList<Credit> credits;
private int creditCount;
public CreditArrayAdapter(Context ctx, int textViewResourceId, List<Credit> items) {
super(ctx, textViewResourceId, items);
credits = (ArrayList<Credit>) items;
creditCount = credits.size();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.list_item_movie_medium, null);
Credit current = credits.get(position);
Log.d(tag, …Run Code Online (Sandbox Code Playgroud) 我正在研究android项目,并正在使用从SQLite数据库中检索数据的ListView.
我正在使用ArrayList创建数据集,然后将此ArrayList添加到ArrayAdapter中.
当从数据库中检索数据时,我告诉SQLite进行排序,以便在将其添加到ListView时按字母顺序排列.在某些时候,信息将动态添加到ListView,而不需要再次从数据库中重新获取所有内容.但是,我想按字母顺序保留所有内容.
我该怎么做,我是否对DataSet进行排序,然后调用notifyDataSet Changes或直接在ArrayAdapter上进行排序.我已经考虑在ArrayAdapter上执行排序,但是这需要一个使用Comparator的参数但不确定它是什么,并且找不到任何可能对我想要实现的任何帮助的工作示例.
下面是填充数组并设置列表适配器的代码
ArrayList<Spanned> passwords = managePasswordList.getPasswordList();
if (passwords != null && passwords.size() > 0)
{
passwordArrayAdapter = new ArrayAdapter<Spanned>(getActivity().getApplicationContext(),
android.R.layout.simple_list_item_activated_1, passwords);
setListAdapter(passwordArrayAdapter);
myListView.setTextFilterEnabled(true);
txtNoRecords.setVisibility(View.GONE);
}
else
{
txtNoRecords.setVisibility(View.VISIBLE);
}
Run Code Online (Sandbox Code Playgroud)
然后,我将数据添加到数据集并使用以下内容刷新列表视图
String company = Encryption.decrypt(passwords.get(i).company);
String username = Encryption.decrypt(passwords.get(i).username);
details = Html.fromHtml(company + "<br />" + "<small><font color=\"#767676\">" + username + "</b></small>");
Run Code Online (Sandbox Code Playgroud)
passwords.add(细节);
passwordArrayAdapter.notifyDataSetChanged();
感谢您的任何帮助,您可以提供.
更新1 我尝试过尼克布拉德伯里提出的建议,但我对比较器有问题.我有以下代码,但我不知道从哪里开始.
SQLiteDatabase myDb = null;
Cursor cursor = null;
ArrayList<Spanned> passwords = new ArrayList<Spanned>();
try
{
myDb = context.openOrCreateDatabase("PasswordManager", Context.MODE_PRIVATE, null); …Run Code Online (Sandbox Code Playgroud) 我正在尝试为 android 创建一个应用程序,我想在其中继续AutoCompleteTextView显示建议以减少用户的努力。目前我正在用我写的一个小代码进行测试,但我没有得到建议。我把代码贴出来,请帮我找出错误。
public class MainActivity extends Activity {
private ArrayList<Map<String, String>> objects;
private AutoCompleteTextView autotextView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
autotextView = (AutoCompleteTextView) findViewById(R.id.autocompleteView);
objects = new ArrayList<Map<String, String>>();
Map<String, String> NamePhoneType = new HashMap<String, String>();
NamePhoneType.put("Name", "John");
NamePhoneType.put("Phone", "1234567890");
objects.add(NamePhoneType);
NamePhoneType.put("Name", "Steve");
NamePhoneType.put("Phone", "4567890123");
objects.add(NamePhoneType);
ArrayAdapter<Map<String, String>> am = new ArrayAdapter<Map<String, String>>(
this, R.layout.list_item, objects);
autotextView.setAdapter(am);
}
}
Run Code Online (Sandbox Code Playgroud)
list_item.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/ccontName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Name" …Run Code Online (Sandbox Code Playgroud) 我正在尝试为我的类别列表创建自定义适配器.出于某种原因,当我试图给它充气时,我无法访问我的category_item布局.这是我的代码:
public class CategoryAdapter extends ArrayAdapter<Category> {
LayoutInflater mInflater;
List<Category> list;
public CategoryAdapter(Context context, int resource, int textViewResourceId, List<Category> objects) {
super(context, resource, textViewResourceId, objects);
mInflater = LayoutInflater.from(context);
list = objects;
}
public View getView(int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
if(convertView==null){
convertView=mInflater.inflate(***resource***, null);
holder = new ViewHolder();
}
return convertView;
}
// Declaring new class ViewHolder
class ViewHolder{
TextView category_name;
}
Run Code Online (Sandbox Code Playgroud)
它说resource我应该能够访问我的category_item.xml布局 - R.layout.category_item.但由于某些原因我没有在列表中看到它,我无法访问它.事实上,我在列表中看不到任何布局.
为什么会发生这种情况?如何解决?
android android-arrayadapter android-layout layout-inflater custom-adapter
我有一个工作的导航抽屉,使用文档中ArrayAdapter所示.我想为每个导航抽屉项设置图标,所以我需要创建一个自定义适配器来使用,但我不确定如何做到这一点.我在下面运行而不会崩溃应用程序,但导航抽屉打开空,没有任何内容.你能帮帮我吗?提前致谢!ImageView
到目前为止我为自定义适配器做了什么:
public class CustomAdapter extends ArrayAdapter
{
private final Context context;
public CustomAdapter(Context context)
{
super(context, R.layout.drawer_list_item);
this.context = context;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflater.inflate(R.layout.drawer_list_item, parent, false);
TextView textViewHome = (TextView) v.findViewById(R.id.drawerHomeTextView);
ImageView imageViewHome = (ImageView) v.findViewById(R.id.drawerHomeImage);
TextView textViewList = (TextView) v.findViewById(R.id.drawerListTextView);
ImageView imageViewList = (ImageView) v.findViewById(R.id.drawerListImage);
return v;
}
}
Run Code Online (Sandbox Code Playgroud)
设置抽屉MainActivity:
mDrawerList = (ListView) findViewById(R.id.leftDrawer);
mDrawerList.setAdapter(new CustomAdapter(this)); …Run Code Online (Sandbox Code Playgroud) android android-arrayadapter custom-adapter navigation-drawer
我对 Android 还很陌生。在下面的类中,从数据库中检索数据并显示在具有两种不同布局的 ListView 中。\n虽然它按预期工作,但问题是滚动不平滑,因为文本视图被一次又一次分配。我不知道如何让它们只分配一次。请有人帮我解决这个问题。\n提前致谢。我对代码表示歉意,我知道它看起来很糟糕。
\n\npublic class FragmentVerses extends ListFragment {\n\nTypeface font;\nViewHolder viewHolder = new ViewHolder();\nViewHolderHeader viewHolderHeader = new ViewHolderHeader();\nDatabaseHelper db;\n\npublic List<VersesModel> verses;\npublic List<ChapterModel> chapterName;\nArrayAdapter<VersesModel> adapter;\n\npublic FragmentVerses() {\n}\n\n@Nullable\n@Override\npublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {\n View view = inflater.inflate(R.layout.verses_fragment, container, false);\n\n db = new DatabaseHelper(getActivity());\n try {\n db.createDatabase();\n } catch (IOException e) {\n Toast.makeText(getActivity(), "Error Creating Database", Toast.LENGTH_LONG)\n .show();\n }\n\n verses = db.getVerses(" WHERE " + getActivity().getIntent().getStringExtra(MainActivity.CONDITION));\n chapterName = db.getChapter();\n adapter = new MyListAdapter();\n setListAdapter(adapter);\n return view;\n}\n\nprivate …Run Code Online (Sandbox Code Playgroud) 我试图创建一个Spinner内部,Fragment但是在ArrayAdapter构造函数调用中出现错误。我不知道为什么,但是有红色下划线。除此之外,没有错误。当我在中使用相同功能ArrayAdapter时Activity,但在中使用时Fragment,则出现错误。
我的FirstFragment.kt:
class FirstFragment : Fragment() {
private var mListener: OnFragmentInteractionListener? = null
override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? {
// Inflate the layout for this fragment
return inflater!!.inflate(R.layout.fragment_first, container, false)
}
override fun onViewCreated(view: View?, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
/*Find the id of spinner*/
val spinner = lol
/*set an adapter with strings array*/
spinner.adapter = ArrayAdapter(this, R.layout.support_simple_spinner_dropdown_item, resources.getStringArray(R.array.atoms)) as SpinnerAdapter? …Run Code Online (Sandbox Code Playgroud) 我有一个基于RecyclerView的简单 mp3 播放器。有一个Adapter和ViewHolder用于处理播放列表中的曲目。
public class TracksAdapter extends RecyclerView.Adapter<TracksAdapter.ViewHolder> {
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.cell_playlist, parent, false);
return new ViewHolder(v);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
holder.trackName.setText("Track " + position);
}
@Override
public int getItemCount() {
return tracks.size();
}
class ViewHolder extends RecyclerView.ViewHolder {
final TextView trackName;
ViewHolder(View itemView) {
super(itemView);
trackName = itemView.findViewById(R.id.trackName);
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我单击曲目时,我想更改播放列表中所选曲目的背景颜色。问题是当我为一个项目设置背景颜色时,它会影响播放列表中的每十个单元格。
例如,如果播放列表中有 100 首曲目,则将突出显示 …