试图让按钮文字实现onClickListener

试图让按钮文字实现onClickListener

问题描述:

当我在Android的相当新的,所以我希望我不要声音太noobie,话虽这么说,我做的,特别是实现了一个OnclickListener对于那些在我的XML按钮的片段。我需要的缺省的onclick功能,能够保存被按压来串按钮的文本,但我一直无法弄清楚如何从视图按钮的文本。这将帮助我为每一个按钮做一个if语句。有什么建议么?试图让按钮文字实现onClickListener

import android.support.annotation.Nullable; 
import android.support.v7.app.AlertDialog; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.Button; 
import android.support.v4.app.Fragment; 

public class Section1Fragment extends Fragment implements View.OnClickListener { 
    private static final String TAG = "Section1Fragment"; 

    Button btnItem1; 
    Button btnItem2; 

    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, @Nullable final ViewGroup container, @Nullable Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.section1,container,false); 

     btnItem1 = (Button) view.findViewById(R.id.btnItem1); 
     btnItem1.setOnClickListener(this); 
     btnItem2 = (Button) view.findViewById(R.id.btnItem2); 
     btnItem2.setOnClickListener(this); 
     return view; 
    } 

    @Override 
    public void onClick(View view) { 
     if (view == btnItem1) { 
      AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
      builder.setMessage("button 1") 
        .setNegativeButton("Retry", null) 
        .create() 
        .show(); 
     } 
     else if (view == btnItem2) { 
      AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
      builder.setMessage("button 2") 
        .setNegativeButton("Retry", null) 
        .create() 
        .show(); 
     } 
    } 
} 
+3

https://stackoverflow.com/questions/20263673/get-text-of-view-button –

+0

的[获取的视图文本(按钮)](可能的复制https://stackoverflow.com/questions/20263673/get -text的视图按钮) – pooyan

view.getText()。的toString()是你需要调用得到一个视图的文本价值的东西。这里是示例代码。

@Override 
public void onClick(View view) { 
    if (view == btnItem1) { 
     Toast.makeText(getActivity(), btnItem1.getText().toString(), Toast.LENGTH_SHORT).show(); 

     AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
     builder.setMessage("button 1") 
       .setNegativeButton("Retry", null) 
       .create() 
       .show(); 
    } 
    else if (view == btnItem2) { 
     Toast.makeText(getActivity(), btnItem1.getText().toString(), Toast.LENGTH_SHORT).show(); 

     AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
     builder.setMessage("button 2") 
       .setNegativeButton("Retry", null) 
       .create() 
       .show(); 
    } 
} 

首先,你要正确地声明按钮,所以进入xml文件,并确保按钮有一个ID。您可以通过该按钮执行以下操作添加ID:android:id="@+id/button"

然后在Java代码文件,你要声明它是这样的:

final Button button = (Button) findViewById(R.id.button)

这应该工作,这样的话你想使听者,这是可以做到这样:

button.setOnClickListener(new View.OnClickListener() { 
 
    @Override 
 
    public void onClick(View _v) { 
 
    //what you want button to do 
 
    } 
 
});