2014-12-02 36 views
0

我有一个按钮,单击它时会弹出一个选择列表对话框。在对话框中做出选择后,我希望当前按钮上的文本从(例如)“选择水果”更改为用户在对话框中选择的文本。用从对话框中选择的文本替换按钮文本

这是我到目前为止有:

public class PickFruitFragment extends DialogFragment { 

private Button mPickFruitButton; 



@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    View rootView = inflater.inflate(R.layout.fragment_pickfruit, container, false); 

    mPickFruitButton = (Button) rootView.findViewById(R.id.pick_fruit_button); 

    mPickFruitButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      openDialog(v); 
     } 
    }); 

    return rootView; 

} 


public void openDialog(View v) { 
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
    builder.setTitle(R.string.pick_fruit_title); 
    builder.setItems(R.array.fruits_array, new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      dialog.dismiss(); 
     } 
    }); 
    builder.setNegativeButton("Cancel", 
      new DialogInterface.OnClickListener() { 

       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        dialog.dismiss(); 
       } 
      }); 
    AlertDialog alert = builder.create(); 
    alert.show(); 


} 

}

只有我在我的XML现在就是该按钮:

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/pick_fruit_button" 
    android:id="@+id/pick_fruit_button" 
    android:layout_below="@android:id/empty" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="51dp" />  
+1

看起来你很好。具体问题是什么? – codeMagic 2014-12-02 19:27:35

+0

我只是不知道下一步要做什么来改变按钮文本,但@布鲁斯的方法为我工作 – kkl260 2014-12-02 20:24:56

回答

0

试试这个:

final String [] fruits = getResources().getStringArray(R.array.fruits_array); 
builder.setItems(R.array.fruits_array, new DialogInterface.OnClickListener() { 
    @Override 
    public void onClick(DialogInterface dialog, int which) { 
     pickFruitButton.setText(fruits[which]); 
     dialog.dismiss(); 
    } 
}); 
+0

作品!非常感谢! – kkl260 2014-12-02 20:23:25