2014-12-02 56 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

相關問題