标签: android-arrayadapter

Android BBC新闻和Pulse新闻应用程序是如何实现水平滚动视图的?

Android BBC新闻和Pulse新闻应用程序如何使用适配器实现水平滚动视图?

对于带适配器的水平滚动视图,没有原生Android支持.我很好奇他们如何回收这些观点.

android horizontalscrollview android-arrayadapter

5
推荐指数
1
解决办法
1149
查看次数

如何让notifyDatasetChanged()与ListAdapter一起使用?

现在我使用setAdapter更新我的ListView,但我认为正确的方法是使用notifiyDatasetChanged(),我不能让它在我的主类(它在适配器中)工作.这是错误:

对于ListAdapter类型,方法notifyDatasetChanged()未定义

我猜这有更好的方法 - 有人能指出我正确的方向吗?

这是我的代码的相关部分:

public class ScoreList extends SherlockFragmentActivity {

    private ListView listViewScore;

    static List<Score> listScore = new ArrayList<Score>();
    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.score_list);
        ctx = this;
        listScore = dbh.getAllScores();

        listViewScore = (ListView) findViewById(R.id.score_list);

        listViewScore.setAdapter(new ScoreListAdapter(ctx,
                R.layout.score_row_item, listScore));
        listViewScore.getAdapter().notifyDatasetChanged(); //this is where I get the error
    }
}
Run Code Online (Sandbox Code Playgroud)

这是适配器:

public class ScoreListAdapter extends ArrayAdapter<Score> {
    private int resource;
    private LayoutInflater inflater;

    public ScoreListAdapter(Context ctx, int resourceId, List<Score> objects) {
        super(ctx, resourceId, objects);
        resource = resourceId; …
Run Code Online (Sandbox Code Playgroud)

java android listview android-arrayadapter

5
推荐指数
1
解决办法
8852
查看次数

带有 CheckBox 的 Android 自定义适配器:setOnClickListener 或 setOnCheckedChangeListener

我有一个自定义适配器,布局中有一个复选框。我可以在 CheckBox 上使用 setOnClickListener 而不出现问题吗?还是最好使用 setOnCheckedChangeListener?

代码:

public class MyAdapter extends ArrayAdapter<Object> {
private Context context;
private LayoutInflater mInflater;
private boolean[] selected;

public MyAdaptader(Context context, List<Object> list) {
    super(context, 0, list);
    this.context = context;
    mInflater = LayoutInflater.from(context);
    selected = new boolean[list.size()];
}

private OnClickListener pressed= new OnClickListener() {
    @Override
    public void onClick(View v) {
        if (((CheckBox) v).isChecked())
            selected[(Integer)v.getTag()] = true;
        else
            selected[(Integer)v.getTag()] = false;
    }
};

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
    if (convertView == …
Run Code Online (Sandbox Code Playgroud)

checkbox android android-arrayadapter

5
推荐指数
1
解决办法
4576
查看次数

使用xml资源创建ArrayAdapter并使用微调器检索"id"或"value"字段

我正在尝试使用ArrayAdapter创建一个微调器,我使用资源xml填充其值.

我还想给资源项一些"id"或"value".如何在onItemSelected()回调中检索这些值?

这是Java代码.

package com.waus.waus;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;

public class Register extends Activity implements OnItemSelectedListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.register);

        Spinner countrySpinner = (Spinner) findViewById(R.id.country_code_spinner);
        ArrayAdapter<CharSequence> countryAdapter = ArrayAdapter.createFromResource(this, R.array.country_codes, android.R.layout.simple_spinner_item);
        countryAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        countrySpinner.setOnItemSelectedListener(this);
        countrySpinner.setAdapter(countryAdapter);

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    } …
Run Code Online (Sandbox Code Playgroud)

android android-arrayadapter android-spinner android-resources

5
推荐指数
1
解决办法
9414
查看次数

GridView使用Custom ArrayAdapter

也许我只是因为好奇而问错了问题.我通过扩展数组适配器来创建自定义适配器.现在我想在GridView中显示它.我已经阅读了很多文章,我发现它们只使用基本适配器来显示GridView.请大家告诉我这背后的逻辑是什么?我们可以使用Array适配器代替Base Adapter吗?

android android-arrayadapter android-gridview baseadapter

5
推荐指数
1
解决办法
2万
查看次数

动态更新 Design Support TabLayout 的标题

有没有办法在设计支持 TabLayout 中动态更新选项卡的标题?我尝试在 Adapter 中添加一个方法,该方法更改保存选项卡标题的 ArrayList 的内容并通知适配器,但选项卡标题不会更改为新标题。

适配器:

public class TabAdapter extends FragmentPagerAdapter {
    private final List<Fragment> fragments = new ArrayList<>();
    private final List<String> fragmentTiles = new ArrayList<>();

    public TabAdapter(FragmentManager fm) {
        super(fm);
    }

    public void addFragment(Fragment fragment, String title) {
        fragments.add(fragment);
        fragmentTiles.add(title);
    }

    @Override
    public Fragment getItem(int position) {
        return fragments.get(position);
    }

    @Override
    public int getCount() {
        return fragments.size();
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return fragmentTiles.get(position);
    }

    public void setFragmentTiles(int index, String title) {
        fragmentTiles.set(index, title);

        Log.e("ARRAY", …
Run Code Online (Sandbox Code Playgroud)

arraylist android-arrayadapter android-design-library androiddesignsupport android-tablayout

5
推荐指数
1
解决办法
3492
查看次数

从FirebaseDatabase获取的数据将显示在3个单独的AlertDialog中,而不是一个

我从中获取一些数据FirebaseDatabase然后将它们放入一个array然后尝试List在一个自定义中显示它们AlertDialog.

这是代码:

query = mDatabase.child("child").child(anotherChild).child("yetAnotherChild");

uProfile.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        query.orderByChild("someChild").addChildEventListener(new ChildEventListener() {
            @Override
            public void onChildAdded(DataSnapshot dataSnapshot, String s) {
                if (dataSnapshot != null) {

                    Map<String, String> newD = (Map<String, String>) dataSnapshot.getValue();

                    ArrayList<String> l = new ArrayList<String>();
                    l.add(newD.get("lol").substring(30));

                    String names[] = l.toArray(new String[0]);

                    AlertDialog.Builder alertDialog = new AlertDialog.Builder(Activity.this);
                    LayoutInflater inflater = getLayoutInflater();
                    View convertView = inflater.inflate(R.layout.dialog_list, null);
                    alertDialog.setView(convertView);
                    alertDialog.setTitle("title");
                    ListView lv = (ListView) convertView.findViewById(R.id.lv);
                    ArrayAdapter<String> adapter = …
Run Code Online (Sandbox Code Playgroud)

android android-arrayadapter android-alertdialog firebase firebase-realtime-database

5
推荐指数
1
解决办法
751
查看次数

Kotlin ArrayAdapter 错误:无法使用提供的参数调用以下任何函数

我是 Kotlin 的 Android 开发新手。在遵循教程项目时,我需要使用ArrayAdapter自定义类。构建项目失败并出现错误。

MainActivity.kt 类抛出错误:

    class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        setSupportActionBar(toolbar)
    }

    val dm = DataManager()
    val adapterCourses = ArrayAdapter<CourseInfo>(
        context = this,
        android.R.layout.simple_spinner_item,
        dm.courses.values.toList()
    )

    override fun onCreateOptionsMenu(menu: Menu): Boolean {
        // Inflate the menu; this adds items to the action bar if it is present.
        menuInflater.inflate(R.menu.menu_main, menu)
        return true
    }

    override fun onOptionsItemSelected(item: MenuItem): Boolean {
        // Handle action bar item clicks here. The action bar will …
Run Code Online (Sandbox Code Playgroud)

android android-arrayadapter kotlin

5
推荐指数
2
解决办法
6212
查看次数

在 RecyclerView 的 onBindViewHolder 方法中将文本设置为 EditText 时出错

我正在尝试将文本设置到EditText我的自定义适配器内部,并且我得到了这个堆栈:

java.lang.NullPointerException: Attempt to read from field 'android.support.v7.widget.ViewInfoStore android.support.v7.widget.RecyclerView.mViewInfoStore' on a null object reference
    at android.support.v7.widget.RecyclerView$LayoutManager.addViewInt(RecyclerView.java:8194)
    at android.support.v7.widget.RecyclerView$LayoutManager.addView(RecyclerView.java:8180)
    at android.support.v7.widget.RecyclerView$LayoutManager.addView(RecyclerView.java:8168)
    at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1573)
    at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1519)
    at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:614)
    at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3812)
    at android.support.v7.widget.RecyclerView.onMeasure(RecyclerView.java:3225)
    at android.view.View.measure(View.java:17547)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535)
    at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
    at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
    at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
    at android.view.View.measure(View.java:17547)
    at android.widget.ScrollView.measureChildWithMargins(ScrollView.java:1260)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:436)
    at android.widget.ScrollView.onMeasure(ScrollView.java:337)
    at android.view.View.measure(View.java:17547)
    at android.support.constraint.ConstraintLayout.onMeasure(ConstraintLayout.java:1676)
    at android.view.View.measure(View.java:17547)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:436)
    at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:141)
    at android.view.View.measure(View.java:17547)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535)
    at android.support.v7.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:400)
    at android.view.View.measure(View.java:17547)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:436)
    at android.view.View.measure(View.java:17547)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535)
    at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436) …
Run Code Online (Sandbox Code Playgroud)

java android android-arrayadapter android-recyclerview

5
推荐指数
1
解决办法
1222
查看次数

替换ArrayAdapter列表

我有一个自定义ArrayAdapter,它使用ArrayList<OrderedProductItem>我的ListView.在这个ListView中,我有一个AutoCompleteTextView,它也使用了一个自定义ArrayAdapter ArrayList<Product>.在初始化时,此AutoCompleteTextView包含所有产品的名称(大约1250),减1(OrderedProductItem的产品).

然后,用户可以使用Spinner选择Product-Tag并创建过滤ArrayList<Product>,因此我只获得包含此Product-Tag的所有产品的列表(仍然减去1).所以,我的问题是:替换ArrayAdapter对象列表的最佳方法是什么?

我知道我可以在ListActivity中重新创建并重新分配一个新的ArrayAdapter实例:

myAdapter = new MyAdapter(this, R.layout.item_view, myList);
setListAdapter(myAdapter);
Run Code Online (Sandbox Code Playgroud)

我也知道我可以使用clear然后使用addAll替换所有内容:

// NOTE: myAdapter.setNotifyOnChange is kept on default (true)
myAdapter.clear();
myAdapter.addAll(myList);
Run Code Online (Sandbox Code Playgroud)

我想第二个可能是最好的,因为我们不想每次都创建一个新实例,或者ArrayAdapter是否有类似的方法setArray(),我只是在寻找时错过了它?或者是否有另一种方式比第二种选择更好的性能?

java android arraylist android-arrayadapter notifydatasetchanged

4
推荐指数
1
解决办法
4442
查看次数