How to implement OnClickListener on Android

前端 未结 5 640
眼角桃花
眼角桃花 2021-01-06 16:26

I learn from

http://developer.android.com/reference/android/widget/Button.html

that \"instead of applying an OnClickListener to the button

相关标签:
5条回答
  • 2021-01-06 16:56

    public class start extends Activity implements View.OnClickListener { Button bSMS;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_start);
        bSMS = (Button) findViewById(R.id.button);
    
    
        bSMS.setOnClickListener(this);
    
    }
    
    @Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub
    
        switch (arg0.getId()) {
    
            case R.id.button:        //"Block SMSs" button pressed
                startActivity(new Intent(this,secret_main.class));
                break;
    
        }
    }
    

    }

    0 讨论(0)
  • 2021-01-06 17:00

    XML : android:onClick="onclickid"

    Activity :

    public void onclickid(View view)
      {
     //Do something When the button is click
      }
    

    This Should Help, But i suggest to use onclicklistener

    0 讨论(0)
  • 2021-01-06 17:04

    Try this:

    public class MainActivity extends Activity  {
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        if (savedInstanceState == null) {
            getFragmentManager().beginTransaction()
                .add(R.id.container, new PlaceholderFragment()).commit();
        }
    
        //Button button = (Button)findViewById(R.id.try_button);      
        //button.setOnClickListener(this);
    }
    
    /**
    public void onClick(View v) {
    
    }
    */
    
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
    
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.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();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
    
    /**
     * A placeholder fragment containing a simple view.
     */
    public static class PlaceholderFragment extends Fragment implements OnClickListener {
    
    public PlaceholderFragment() {
    }
    
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_main, container,
                false);
    
      Button button = (Button) rootView.findViewById(R.id.try_button);      
      button.setOnClickListener(this);
    
        return rootView;
    }
    
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        Toast.makeText(getActivity(), "I'm clicked!", Toast.LENGTH_SHORT).show();
    }
    
    }
    }
    
    0 讨论(0)
  • 2021-01-06 17:06

    You don't need implement OnClickListener, because your button execute the method automatically.

    Edit:

    public class MainActivity extends Activity {
    
    private OnClickListener onClickListener;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        if (savedInstanceState == null) {
            getFragmentManager().beginTransaction()
                    .add(R.id.container, new PlaceholderFragment()).commit();
        }
        initListener();//Initializing Listener.
        Button button = (Button)findViewById(R.id.try_button);
        //This command causes problem
        button.setOnClickListener(onClickListener);
    }
    
    private void initListener(){
             onclickListener = new OnClickListener() {
                   @Override
                    public void onClick(View view) {
                          Toast.makeText(getApplicationContext(),
                          "Button Clicked",Toast.LENGTH_SHORT).show();
                    }
             };
    }
    

    Quit the Onclick in your XML.

    <Button
            android:id="@+id/try_button" 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text = "TryButton"
        />
    
    0 讨论(0)
  • 2021-01-06 17:13

    I've explained the different ways you can implement an OnClickListener on my blog: http://www.androiddevresources.com/guides/tutorial-how-to-implement-an-onclicklistener/

    Basically there are three ways. - Implement the listener in the activity class (and set the xml attribute) - Create a variable in your activity class (or other class, for example a fragment). - Create a new listener in line with new OnClickListener().

    I've added example code in the article and an example project on GitHub which you can download.

    0 讨论(0)
提交回复
热议问题