从Intent调用对话框

时间:2017-11-14 09:46:36

标签: android

是否可以从Intent调用对话框。我有两个Activity RegisterActivity和AuthenticActivity,我在RegisterActivity上实现了自定义对话框,但我还需要在AuthenticActivity上使用相同的对话框。那么我们如何才能在AuthenticActivity上获得该对话框。我们可以从Intent获得,请建议我吗?我不想在两个Activity上编写代码。

3 个答案:

答案 0 :(得分:1)

拥有一个BaseActivity,你可以在其中使用通用代码,在你的情况下有一个 公共方法。您的RegisterActivity和AuthenticActivity都应该扩展BaseActivity。

公共类BaseActivity扩展了AppCompatActivity {

public void displayCommonDialog() {

   View v = getLayoutInflater().inflate(R.layout.fragment_manage_account_dialog, null);

........ ........

}

}

public class RegisterActivity扩展了BaseActivity {

........ ......... ........

//调用对话框    displayCommonDialog();

}

您可以使用interface或EventBus库来触发事件/具有回调侦听器以捕获对话框中的单击事件。

答案 1 :(得分:0)

短awnser:使用BroadcastReceiver。

@Override
public void onReceive(Context context, Intent intent) {

  if (intent.getAction().equals(ACTION_EXECUTE_EXAMPLE_TEST)) {
      //Do whatever you want
  }
}

亲自检查here。在清单上添加它,然后您就可以在活动中收到意图;)

答案 2 :(得分:0)

使用静态常量方法,

list(matrix)
['[', '[', '2', ',', ' ', '0', ',', ' ', '4', ']', ',', ' ', '[', '1', ',', ' ', '2', ',', ' ', '4', ']', ',', ' ', '[', '4', ',', ' ', '4', ',', ' ', '2', ']', ']']

x = [int(a) for a in matrix] 
builtins.TypeError: int() argument must be a string, a bytes-like object or a number, not 'list'

matrix.split(',')
['[[2', '0', '4]', '[1', '2', '4]', '[4', '4', '2]]']

要调用此方法,您只需要编写,

fin_result = 0

def perform_check():
    print("Enter form \n [[a,b,c] \n [d,e,f] \n [g,h,i]]")
    #ask_for_input = [[4,-1,1],[4,5,3],[-2,0,0]]
    ask_for_input = [[2,0,4],[1,2,4],[4,4,2]]
    print(type(ask_for_input))

    #call function to cont
    calculate_determinate_matrix(ask_for_input)


def calculate_determinate_matrix(matrix3x3):
    matrix_list2x2 = []

    matrix_list2x2.append([[matrix3x3[1][1], matrix3x3[1][2]], [matrix3x3[2][1], matrix3x3[2][2]]])

    matrix_list2x2.append([[matrix3x3[1][0], matrix3x3[1][2]],[matrix3x3[2][0], matrix3x3[2][2]]])

    matrix_list2x2.append([[matrix3x3[1][0], matrix3x3[1][1]],[matrix3x3[2][0], matrix3x3[2][1]]])

    count = 0
    for count, matrix_2x2 in enumerate(matrix_list2x2):
        if count % 2 == 1:
            calculate_2x2_matrix(matrix_2x2, matrix3x3[0][count] * -1)
        else:
            calculate_2x2_matrix(matrix_2x2, matrix3x3[0][count])

def calculate_2x2_matrix(matrix, mult):
    global fin_result
    result = matrix[0][0] * matrix[1][1]
    result_2 = matrix[0][1] * matrix[1][0]
    fin_result += mult * (result - result_2)    

def main():
    perform_check()
    print(fin_result)

if __name__ == "__main__":
    main()