2017-10-17 68 views
0

我正尝试从适配器重新加载MainActivity。请看以下代码:重新加载活动时出现闪烁

activity = (Activity) context; 
      activity.finish(); 
      activity.overridePendingTransition(0, 0); 
      Intent intent =((Activity) context).getIntent(); 
      intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); 
      context.startActivity(intent); 
      activity.overridePendingTransition(0, 0); 

的问题是,即使是添加此代码块后,闪烁的动画仍是活动的重装过程中出现的。

在适配器内部,我显示了一个对话框。按下按钮后,对话框将导致重新加载活动。

内onBindViewHolder():

viewHolder.txtv_name.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) 
     { 
      int_timer = 0; 
      tickValue = true; 
      timerGroupChatHistory.start(); 
      getChatHistory(alst_Dealitem.get(i)); 

     } 
    }); 

里面的聊天记录,我打电话ShowChatDialog():

public void show_chatDialog(final ArrayList<chatObject> alst_chatHistoryList, final String refNumber) 
{ 
    final Dialog dlg_dialog = new Dialog(context, R.style.Theme_Dialog); 
    // dialog.setCancelable(false); 
    dlg_dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    Window window = dlg_dialog.getWindow(); 
    if (window == null) return; 
    WindowManager.LayoutParams lp = new WindowManager.LayoutParams(); 
    lp.copyFrom(dlg_dialog.getWindow().getAttributes()); 
    lp.width = WindowManager.LayoutParams.FILL_PARENT; 
    lp.height = WindowManager.LayoutParams.MATCH_PARENT; 
    lp.gravity = Gravity.CENTER; 
    dlg_dialog.getWindow().setAttributes(lp); 
    //dialog.setContentView(R.layout.new_field_quote_entry_dialog); 
    dlg_dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent); 
    dlg_dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); 
    //dialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND); 
    dlg_dialog.setContentView(R.layout.chat_history_dialog); 

    final RecyclerView rvw_chatHistoryList = (RecyclerView)dlg_dialog.findViewById(R.id.chatHistoryList); 
    final EditText etxt_chatText = (EditText)dlg_dialog.findViewById(R.id.chat_type); 
    final LinearLayout lnrl_mainLayout = (LinearLayout)dlg_dialog.findViewById(R.id.dialog_main_layout); 
    TextView txtv_send = (TextView) dlg_dialog.findViewById(R.id.chat_send); 
    TextView txtv_title = (TextView)dlg_dialog.findViewById(R.id.chat_text) ; 
    LinearLayout lnrl_back = (LinearLayout) dlg_dialog.findViewById(R.id.chat_backbutton) ; 

    txtv_title.setText(refNumber); 
    lnrl_back.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      activity.finish(); 
      activity.overridePendingTransition(0, 0); 
      Intent intent =((Activity) context).getIntent(); 
      intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); 
      context.startActivity(intent); 
      activity.overridePendingTransition(0, 0); 




     } 
    }); 

有什么我失踪?请帮忙。提前致谢。

+1

发布更多代码。 – Anonymous

+0

@匿名:请检查更新的代码。 –

回答

2
if (Build.VERSION.SDK_INT >= 11) { 
    recreate(); 
} else { 
    Intent intent = getIntent(); 
    intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); 
    finish(); 
    overridePendingTransition(0, 0); 

    startActivity(intent); 
    overridePendingTransition(0, 0); 
} 

希望这会帮助你。

+0

哇,谢谢你工作 –