Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android活动冷启动动画问题_Java_Android_Animation_Android Recyclerview - Fatal编程技术网

Java Android活动冷启动动画问题

Java Android活动冷启动动画问题,java,android,animation,android-recyclerview,Java,Android,Animation,Android Recyclerview,当我启动DbActivity时(当应用程序第一次启动时),RecyclerView的动画不工作(可能工作但未显示),但如果我重新打开活动,它工作正常 我试图移动用于获取数据的istruction,并在onStart()方法上创建适配器,但它不起作用 有什么问题 数据库活动代码: public class DbActivity extends AppCompatActivity { private Activity contesto; private ImageButton c

当我启动DbActivity时(当应用程序第一次启动时),RecyclerView的动画不工作(可能工作但未显示),但如果我重新打开活动,它工作正常

我试图移动用于获取数据的istruction,并在onStart()方法上创建适配器,但它不起作用

有什么问题

数据库活动代码:

public class DbActivity extends AppCompatActivity {

    private Activity contesto;

    private ImageButton cercaBtn;
    private EditText SSIDEditText;
    private EditText PositionEditText;

    private DBManager manager;
    private ArrayList<Rete> reti;

    public static RecyclerView recyclerView;
    public static DatabaseRecyclerViewAdapter adapter;

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

        this.contesto = this;

        // dbManager init.
        manager = DBManager.getDbInstance(getApplicationContext());

        // searching button
        cercaBtn = findViewById(R.id.elimina_db);

        // searching EditText 
        SSIDEditText = findViewById(R.id.searchSSID);
        PositionEditText = findViewById(R.id.searchPosition);

        // adapter creation
        adapter = new DatabaseRecyclerViewAdapter();

        // recyclerview init.
        recyclerView = (RecyclerView) findViewById(R.id.cursor_listview);
        recyclerView.setLayoutAnimation(AnimationUtils.loadLayoutAnimation(this, R.anim.layout_animation));
        recyclerView.setAdapter(adapter);
        recyclerView.setLayoutManager(new LinearLayoutManager(this));

        // getting data
        reti = manager.query();

        //  updating adapter data
        adapter.setReti(reti);
        
        // adding listeners
        setListeners();
    }

    ...
}
公共类DbActivity扩展了appcompativity{
私人活动竞赛;
私人图像按钮cercaBtn;
私有编辑文本ssideditext;
私有编辑文本位置编辑文本;
私有数据库管理器;
私人ArrayList reti;
公共静态RecyclerView RecyclerView;
公共静态数据库RecycleServiceAdapter适配器;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_db);
this.o=此;
//dbManager init。
manager=DBManager.getDbInstance(getApplicationContext());
//搜索按钮
cercaBtn=findViewById(R.id.elimina_db);
//搜索编辑文本
ssideditext=findviewbyd(R.id.searchSSID);
PositionEditText=findViewById(R.id.searchPosition);
//适配器创建
适配器=新数据库RecycleServiceAdapter();
//回收视图初始化。
recyclerView=(recyclerView)findViewById(R.id.cursor\u listview);
recyclerView.setLayoutImation(AnimationUtils.LoadLayoutImation(this,R.anim.layout_animation));
recyclerView.setAdapter(适配器);
recyclerView.setLayoutManager(新的LinearLayoutManager(本));
//获取数据
reti=manager.query();
//更新适配器数据
适配器.setReti(reti);
//添加侦听器
setListeners();
}
...
}
自定义适配器:

public class DatabaseRecyclerViewAdapter extends RecyclerView.Adapter<DatabaseRecyclerViewAdapter.ViewHolder> {
    ArrayList<Rete> reti;

    public DatabaseRecyclerViewAdapter(ArrayList<Rete> reti) {
        setReti(reti);
    }

    public DatabaseRecyclerViewAdapter() {

    }

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_cursoradapter, parent, false);
        DatabaseRecyclerViewAdapter.ViewHolder holder = new DatabaseRecyclerViewAdapter.ViewHolder(view);

        return holder;
    }

    @Override
    public void onBindViewHolder(@NonNull final ViewHolder holder, int position) {
        Rete tmp = reti.get(position);

        //holder.linearLayout.setAnimation(AnimationUtils.loadAnimation(holder.view.getContext(), R.anim.item_animation_fall_down));

        // updating elements text
        holder.SSID.setText(tmp.getSSID());
        holder.info.setText(tmp.getDettagli());
        holder.level.setText(tmp.getLevel());

        // decrypting password
        try {
            holder.password.setText(AESCrypt.decrypt(tmp.getPassword()));
        } catch (Exception e) {
            holder.password.setText("");
            Log.d("ENCRIPTION", "FAIL: " + e);
        }

        // makes password field clickable
        holder.password.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                // printing the alert box used to edit the password
                AlertBoxManager.displayUpdatePasswordAlertBox((Activity) view.getContext() , holder.password, holder.SSID.getText().toString());
            }
        });

        // getting lat & lon
        Double lat = tmp.getLat();
        Double lon = tmp.getLon();

        // commute coordinates into human readable string
        HumanPosition converter = new HumanPosition(holder.view.getContext());
        holder.position.setText(converter.coordToString(lat, lon));
    }

    @Override
    public int getItemCount() {
        return reti.size();
    }

    public void setReti(ArrayList<Rete> reti) {
        this.reti = reti;
        notifyDataSetChanged();
        DbActivity.recyclerView.scheduleLayoutAnimation();
    }

    public class ViewHolder extends RecyclerView.ViewHolder {
        private TextView SSID;
        private TextView info;
        private TextView level;
        private TextView password;
        private TextView position;
        private LinearLayout linearLayout;

        private View view;

        public ViewHolder(@NonNull final View itemView) {
            super(itemView);

            view        = itemView;
            //linearLayout = (LinearLayout) itemView.findViewById(R.id.dbRecyclerViewLinearLayout);

            SSID        = (TextView) itemView.findViewById(R.id.cursor_SSID);
            info        = (TextView) itemView.findViewById(R.id.cursor_dettagli);
            level       = (TextView) itemView.findViewById(R.id.cursor_level);
            password    = (TextView) itemView.findViewById(R.id.cursor_password);
            position    = (TextView) itemView.findViewById(R.id.cursor_position);

            itemView.setOnLongClickListener(new View.OnLongClickListener() {
                @Override
                public boolean onLongClick(View view) {
                    AlertBoxManager.displayDeleteReteAlertBox((Activity) view.getContext(), SSID.getText().toString());

                    return false;
                }
            });
        }


    }
}

公共类DatabaseRecycleServiceAdapter扩展了RecyclerView.Adapter{ ArrayList reti; 公共数据库RecycleServiceAdapter(ArrayList reti){ setReti(reti); } 公共数据库RecycleServiceAdapter(){ } @非空 @凌驾 public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent,int viewType){ View=LayoutFlater.from(parent.getContext()).flate(R.layout.layout\u cursoradapter,parent,false); DatabaseRecycleServiceAdapter.ViewHolder holder=新建DatabaseRecycleServiceAdapter.ViewHolder(视图); 报税表持有人; } @凌驾 public void onBindViewHolder(@NonNull final ViewHolder,int位置){ Rete tmp=reti.get(位置); //holder.linearLayout.setAnimation(AnimationUtils.loadAnimation(holder.view.getContext(),R.anim.item_animation_fall_down)); //更新元素文本 holder.SSID.setText(tmp.getSSID()); holder.info.setText(tmp.getDettagli()); holder.level.setText(tmp.getLevel()); //解密密码 试一试{ holder.password.setText(AESCrypt.decrypt(tmp.getPassword()); }捕获(例外e){ holder.password.setText(“”); 日志d(“说明”,“失败:+e”); } //使密码字段可单击 holder.password.setOnClickListener(新视图.OnClickListener(){ @凌驾 公共void onClick(视图){ //打印用于编辑密码的警报框 displayUpdatePasswordAlertBox((活动)视图.getContext(),holder.password,holder.SSID.getText().toString()); } }); //获取lat&lon Double lat=tmp.getLat(); Double lon=tmp.getLon(); //将坐标转换为人类可读的字符串 HumanPosition converter=新的HumanPosition(holder.view.getContext()); 保持架位置setText(转换器坐标串(横向、纵向)); } @凌驾 public int getItemCount(){ 返回reti.size(); } 公共无效setReti(ArrayList reti){ this.reti=reti; notifyDataSetChanged(); DbActivity.recyclerView.ScheduleLayoutImation(); } 公共类ViewHolder扩展了RecyclerView.ViewHolder{ 私有文本视图SSID; 私有文本视图信息; 私有文本视图级别; 私有文本视图密码; 私有文本视图位置; 私人线性布局线性布局; 私人视野; 公共视图持有者(@NonNull final View itemView){ 超级(项目视图); 视图=项目视图; //linearLayout=(linearLayout)itemView.findViewById(R.id.dbRecycleServiceWLinearLayout); SSID=(TextView)itemView.findViewById(R.id.cursor\u SSID); info=(TextView)itemView.findViewById(R.id.cursor\u dettagli); level=(TextView)itemView.findViewById(R.id.cursor\u level); 密码=(TextView)itemView.findViewById(R.id.cursor\u密码); 位置=(TextView)itemView.findViewById(R.id.cursor\u位置); itemView.setOnLongClickListener(新视图.OnLongClickListener(){ @凌驾 仅长按公共布尔值(视图){ displayDeleteReteAlertBox((活动)视图.getContext(),SSID.getText().toString()); 返回false; } }); } } }