2014-12-02 75 views
-1

我有一个MainActivity像下面这样:如何通过点击一个TextView打开DialogFragment

enter image description here

我的问题是如何打开一个DialogFragment点击TextView“点击这里给一个名字到任务“旁边放置”播放“按钮。

这里是我TextView的代码:

TextView buttonView = new TextView(this); 
buttonView.setHint("click HERE to give a name to the task"); 
buttonView.setX(50); 
buttonView.setY(50); 

DialogFragent的代码:

public class ButtonNameDialogFragment extends DialogFragment { 

    private IFragment iButNamFrag; 

    @Override 
    public Dialog onCreateDialog(Bundle savedInstanceState) { 
     AlertDialog.Builder setButNameAlert = new AlertDialog.Builder(getActivity()); 

     setButNameAlert.setTitle("Set Task name"); 

     LayoutInflater inflater = getActivity().getLayoutInflater(); 

     setButNameAlert.setView(inflater.inflate(R.layout.button_name_fragment, null)) 
      .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { 

       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        // TODO Implement dialogPositiveClick 

       } 
      }) 
      .setNegativeButton(R.string.undo, new DialogInterface.OnClickListener() { 

       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        // TODO Implement dialogNegativeClick 

       } 
      }); 

     return setButNameAlert.create(); 

    } 

    @Override 
    public void onAttach(Activity activity) { 
     super.onAttach(activity); 
     iButNamFrag = (IFragment) activity; 
    } 

} 

,这里是接口:

public interface IFragment { 

    public void onDialogPositiveClick(DialogFragment dialog); 
    public void onDialogNegativeClick(DialogFragment dialog); 

} 

回答

1

您可以设置一个onClickListener在Android中的任何视图,然后执行任何行为y ou想

buttonView.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     // Create new DiaglogFragment and display it 
    } 
}; 

这是用于任何类型的按钮按相同的方法。在StackOverflow上还有很多其他的答案,还有更多的例子。如果您需要更多关于轻敲识别或显示碎片的信息,快速搜索将在Stack上找到它。

0
buttonView.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      DialogFragment frag = new ButtonNameDialogFragment(); 
      frag.show(*context*, ButtonNameDialogFragment.class.getCanonicalName()); 
     } 
    });