2016-07-31 8 views
0

Ich versuche, ein Benutzeroberflächen-Arbeitsblatt in Android zu entwickeln. Mit Abhängigkeit:Verwenden von Optionen in ActionSheet zum Ändern der Schaltfläche Text

compile 'com.baoyz.actionsheet:library:1.1.6' 

Ich habe ein actionsheet in Android, die wie folgt aussehen entwickelt: ActionSheet in Android

Ich versuche, den Knopf, um Text zu ändern, wenn eine Option aus dem actionSheet ausgewählt ist. Der Index in der folgenden javafile enthält die Zeichenfolge Position wie Array, aber ich bin nicht in der Lage, den Zeichenfolgenwert von diesem Index zu erhalten.

Hier ist meine javafile:

public class billBookInfo extends AppCompatActivity implements ActionSheet.ActionSheetListener{ 

     private Button change; 
     private String setValue; 
     private Button vtype; 
     private Button zone; 

     Button next; 
     Button previous; 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_bill_book_info); 
      getSupportActionBar().hide(); 

      vtype = (Button) findViewById(R.id.info_billbook_bt_vtype); 
      zone = (Button)findViewById(R.id.info_billbook_bt_zone); 
     } 
    } 

    public void onClick(View v){ 
     switch (v.getId()) { 
      case R.id.info_billbook_bt_vtype: 
       setTheme(R.style.ActionSheetStyleiOS7); 
       change = vtype; 
       showActionSheet1(); 
       break; 

      case R.id.info_billbook_bt_zone: 
       setTheme(R.style.ActionSheetStyleiOS7); 
       showActionSheet2(); 
       change = zone; 
       break; 
     } 
    } 

    private void showActionSheet1() { 
     ActionSheet.createBuilder(this,getSupportFragmentManager()) 
        .setCancelButtonTitle("Cancel") 
        .setOtherButtonTitles("Motorcycle","Scooter","Car","Van") 
        .setCancelableOnTouchOutside(true).setListener(this).show(); 
    } 

    private void showActionSheet2() { 
     ActionSheet.createBuilder(this,getSupportFragmentManager()) 
       .setCancelButtonTitle("Cancel") 
       .setOtherButtonTitles("Me", "Ko", "Sa", "Ja") 
       .setCancelableOnTouchOutside(true).setListener(this).show(); 
    } 

    @Override 
    public void onDismiss(ActionSheet actionSheet, boolean isCancel) { 

    } 

    @Override 
    public void onOtherButtonClick(ActionSheet actionSheet, int index) { 
     int i = 0; 
     if (i == index){ 

      setValue = "".concat(getString(index)); 
      change.setText(setValue); 
     } 
    } 
} 

Antwort

1

Warum Sie nicht über eine Variable verwenden, um die Werte zu speichern.

String vArr[] = new String[]{"Motorcycle","Scooter","Car","Van"}; 
    String dArr[] = new String[]{"Me", "Ko", "Sa", "Ja"}; 
    ActionSheet vSheet, dSheet; 
    private void showActionSheet1() { 
     vSheet = ActionSheet.createBuilder(this,getSupportFragmentManager()) 
        .setCancelButtonTitle("Cancel") 
        .setOtherButtonTitles(vArr[0],vArr[1],vArr[2],vArr[3]) 
        .setCancelableOnTouchOutside(true).setListener(this).show(); 
    } 
    private void showActionSheet2() { 
     dSheet = ActionSheet.createBuilder(this,getSupportFragmentManager()) 
       .setCancelButtonTitle("Cancel") 
       .setOtherButtonTitles(dArr[0],dArr[1],dArr[2],dArr[3]) 
       .setCancelableOnTouchOutside(true).setListener(this).show(); 
    } 

    @Override 
    public void onDismiss(ActionSheet actionSheet, boolean isCancel) { 

    } 

    @Override 
    public void onOtherButtonClick(ActionSheet actionSheet, int index) { 
     if (actionSheet == vSheet){ 
      change.setText(vArr[index]); 
     } 
     else{ 
      change.setText(dArr[index]); 
     } 

    } 
+0

Vielen Dank. Es funktionierte :) –

Verwandte Themen