Java 如何在RecyclerView中设置itemCounter,并在数字较大时每次更改计数器的颜色?

Java 如何在RecyclerView中设置itemCounter,并在数字较大时每次更改计数器的颜色?,java,android,Java,Android,第一次使用RecyclerView和ListView时,我使用了以下代码ListView.getCount;,但对于RecyclerView来说,我不知道如何让它工作 关于在数字变大时更改文本颜色,例如:1,2,3,我想知道是否每次数字变大时都可以更改颜色 这是我的密码: public class MainActivity extends BaseActivity { //int containing the duration of the animation run when

第一次使用RecyclerView和ListView时,我使用了以下代码ListView.getCount;,但对于RecyclerView来说,我不知道如何让它工作

关于在数字变大时更改文本颜色,例如:1,2,3,我想知道是否每次数字变大时都可以更改颜色

这是我的密码:

    public class MainActivity extends BaseActivity {

    //int containing the duration of the animation run when items are added or removed from the RecyclerView
    public static final int ANIMATION_DURATION = 2000;
    //edit text letting the user type item name to be added to the recylcerview
    private EditText mInput;
    //itemcounter for recyclerview
    private TextView mItemCounter;
    //recyclerview showing all items added by the user
    private RecyclerView mRecyclerView;
    private AdapterRecyclerAnimators mAdapter;
    ArrayList<String> mListData = new ArrayList<>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        initViews();

        if(savedInstanceState != null){
            ArrayList<String> items = savedInstanceState.getStringArrayList("items");
            mListData.addAll(items);
            mAdapter.notifyDataSetChanged();
        }

    }

    @Override
    public void onSaveInstanceState(Bundle outState) {
        outState.putStringArrayList("items", mListData);
    }

    private void initViews(){
        mInput = (EditText) findViewById(R.id.text_input);
        mRecyclerView = (RecyclerView) findViewById(R.id.recyclerAnimatedItems);
        mItemCounter = (TextView) findViewById(R.id.itemCounter);
        mItemCounter.setText(String.valueOf(mRecyclerView.getChildCount()));
        mAdapter = new AdapterRecyclerAnimators(this);
        //set an animator on the RecyclerView that works only when items are added or removed
        mRecyclerView.setItemAnimator(new SlideInLeftAnimator());
        mRecyclerView.getItemAnimator().setAddDuration(ANIMATION_DURATION);
        mRecyclerView.getItemAnimator().setRemoveDuration(ANIMATION_DURATION);
        mAdapter.addAll(DBHelper.getConnection(MainActivity.this).getAllItems());
        mRecyclerView.setAdapter(mAdapter);
        mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
    }

    public void addItem(View view) {
        //check if the EditText has valid contents
        if (Util.hasValidContents(mInput)) {
            DBHelper.getConnection(MainActivity.this)
                    .saveItem(mInput.getText().toString());

            ArrayList<String> allItems = DBHelper.getConnection(MainActivity.this).getAllItems();

            mAdapter.addAll(allItems);

            mInput.setText("");
        }
    }

    @Override
    protected int getLayoutResourceId() {
        return R.layout.activity_main;
    }

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

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}

您可以将颜色更改代码移动到RecyclerView适配器的onBindViewHolder方法中。这样,您就可以轻松访问数据长度。

如果我理解正确,您只需要替换listview.getCount


与其尝试从RecyclerView获取计数,不如使用mAdapter.getCount

我已更改为此mItemCounter.setTextString.valueOfAdapter.getItemCount;现在我得到的是NullPointerException。因为mAdapter是在您提到的语句move mItemCounter.setTextString.valueOfAdapter.getItemCount之后定义的;作为initViews中的最后一条语句