Android XML OnClick属性对setContent更改无效

Android XML OnClick属性对setContent更改无效,android,Android,我尝试在一个活动中多次使用set content实现多个布局,并用它再次初始化所有小部件,到目前为止我成功了,但有一点我被卡住了 setContentView(R.layout.layout1)-->initWidgets1()-->btn1.setOnClickListner()--> setContentView(R.layout.layout2)-->initWidgets2()-->btn2.setOnClickListner()--> 但是 此方法也不适用于任何布局 虽然btn.set

我尝试在一个活动中多次使用set content实现多个布局,并用它再次初始化所有小部件,到目前为止我成功了,但有一点我被卡住了

  • setContentView(R.layout.layout1)
    -->
    initWidgets1()-->
    btn1.setOnClickListner()
    -->

  • setContentView(R.layout.layout2)
    -->
    initWidgets2()-->
    btn2.setOnClickListner()
    -->

  • 但是

    此方法也不适用于任何布局

    虽然
    btn.setOnClickListner()
    可以工作,但它需要巨大的内存来存储巨大的列表,如果它可以工作的话,后者就很容易了

    代码:

    我正在尝试使用set在一个活动中实现多个布局 内容多次,并使用它再次初始化所有小部件


    尝试使用多个活动或片段。大多数人不会做你想做的事情。

    应该使用片段。我正在使用选项卡栏活动,并尝试仅在一个选项卡中显示多个布局。我是Android新手,。。
    handleClick2(View v)
    {
    Switch (v.getId())
    {-------------
    ---------
    Multiple click handles
    -----
    ---
    }
    
    Similarly.
    handleClick1(View v)
    {
    Switch (v.getId())
    {
    -----------
    ---------
    Multiple click handles
    -----
    ---
    }
    
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE); 
        setContentView(R.layout.activity_user);
        initCurrUserWidgets();      
        setAdapter();   
        setCurrUserClickListners();
    }
    
    private void initNewUsrWidgets() {
        // TODO Auto-generated method stub
               cancel_new_user          =   (TextView)findViewById(R.new_user.cancel_TV);
               name_new_user            =   (TextView)findViewById(R.new_user.name_TV);
               username_new_user        =   (TextView)findViewById(R.new_user.username_TV);
               password_new_user        =   (TextView)findViewById(R.new_user.password_TV);
               phone_new_user           =   (TextView)findViewById(R.new_user.phone_TV);
               email_new_user           =   (TextView)findViewById(R.new_user.email_TV);
               role_new_user            =   (TextView)findViewById(R.new_user.role_TV);
               window_group_new_user    =   (TextView)findViewById(R.new_user.window_group_TV);
               room_office_new_user     =   (TextView)findViewById(R.new_user.room_office_TV);
    
    
        //New User's input Dialog
                user_input_Dialog   = new Dialog(UserActivity.this);
                user_input_Dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
                user_input_Dialog.setContentView(R.layout.userdialog);
                user_input_Dialog.setCanceledOnTouchOutside(false);
                doneBtn_userDialog = (Button) user_input_Dialog.findViewById(R.userBox.done_Button);
                cancelBtn_userDialog = (Button) user_input_Dialog.findViewById(R.userBox.cancel_Button);
                inputbox_EditText = (EditText)user_input_Dialog.findViewById(R.userBox.ip_EditText);
                inputbox_EditText.setFocusableInTouchMode(true);        
    }
    
    private void initCurrUserWidgets() {
        // TODO Auto-generated method stub
        //new User Screen Widgets
    
        //user Main Screen
        userListView =  (ListView)findViewById(R.users.userList_ListView);
        adduser     =   (TextView)findViewById(R.users.adduser);        
    }
    
    
    private void setCurrUserClickListners() 
    {
        // TODO Auto-generated method stub
        adduser.setOnClickListener(new OnClickListener() {
    
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                setContentView(R.layout.new_user);
    
                initNewUsrWidgets();
    
                handleNewUsrClicks();
    
            }
        });
    }
    
    protected void handleNewUsrClicks() {
        // TODO Auto-generated method stub
    cancel_new_user.setOnClickListener(new OnClickListener() {
    
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
            setContentView(R.layout.activity_user); 
            initCurrUserWidgets();      
            setAdapter();   
            setCurrUserClickListners();
            }
        });
    
    doneBtn_userDialog.setOnClickListener(new OnClickListener() {
    
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
    
            String input = "";
            switch(dialogPointer)
            {
            case R.new_user.name_TV:
             input = inputbox_EditText.getText().toString();
             Toast.makeText(getApplicationContext(), ""+input, Toast.LENGTH_SHORT).show();
            break;
    
            case R.new_user.username_TV:
                 input = inputbox_EditText.getText().toString();
                 Toast.makeText(getApplicationContext(), ""+input, Toast.LENGTH_SHORT).show();
    
            break;
    
            case R.new_user.password_TV: 
                 input = inputbox_EditText.getText().toString();
                 Toast.makeText(getApplicationContext(), ""+input, Toast.LENGTH_SHORT).show();
    
            break;
    
            case R.new_user.phone_TV: 
                 input = inputbox_EditText.getText().toString();
                 Toast.makeText(getApplicationContext(), ""+input, Toast.LENGTH_SHORT).show();
    
            break;
    
            case R.new_user.email_TV: 
                 input = inputbox_EditText.getText().toString();
                 Toast.makeText(getApplicationContext(), ""+input, Toast.LENGTH_SHORT).show();
    
            break;
    
            case R.new_user.role_TV: 
                 input = inputbox_EditText.getText().toString();
                 Toast.makeText(getApplicationContext(), ""+input, Toast.LENGTH_SHORT).show();
    
            break;
    
            }
    
        }
    });
    
    cancelBtn_userDialog.setOnClickListener(new OnClickListener() {
    
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            user_input_Dialog.dismiss();
        }
    });
    
    }
    
    private void setAdapter() {
        // TODO Auto-generated method stub
        testData    =   new TestData();
        ListViewAdapter myAdapter = new ListViewAdapter(getApplicationContext(), testData.useTestData());
        userListView.setAdapter(myAdapter);
    
    }
    public void handleformClick(View v) //For New user Screen
    {  
        int point = v.getId();
        Toast.makeText(getApplicationContext(), ""+point,Toast.LENGTH_SHORT).show();
        switch(point)
        {
        case R.new_user.name_TV: 
        title_userDialog.setText("Name");
        user_input_Dialog.show();
        dialogPointer   =   point;
        break;
    
        case R.new_user.username_TV:
        title_userDialog.setText("Username");
        user_input_Dialog.show();
        dialogPointer   =   point;
        break;
    
        case R.new_user.password_TV: 
        title_userDialog.setText("Password");
        user_input_Dialog.show();
        dialogPointer   =   point;
        break;
    
        case R.new_user.phone_TV: 
        title_userDialog.setText("Phone No.");
        user_input_Dialog.show();
        dialogPointer   =   point;
        break;
    
        case R.new_user.email_TV: 
        title_userDialog.setText("Email");
        user_input_Dialog.show();
        dialogPointer   =   point;
        break;
    
        case R.new_user.role_TV: 
        title_userDialog.setText("Role");
        user_input_Dialog.show();
        dialogPointer   =   point;
        break;
        }
    }
    }