2015-12-05 29 views
1

我开始编写Android应用程序,但遇到需要从字符串中获取值的部分。 在这一刻尝试为Android制作计算器。在这个例子中,我试图让值只是添加两个值。如何从Android中的字符串中获取值

添加我的代码:

MainActivity.java

public class MainActivity extends AppCompatActivity { 

@Bind({R.id.button0, R.id.button1, R.id.button2, R.id.button3, R.id.button4, R.id.button5, R.id.button6, R.id.button7, R.id.button8, 
     R.id.button9, R.id.buttonDot, R.id.buttonC, R.id.buttonDeleteLastSymbol, R.id.buttonMultiplication, R.id.buttonDivision, R.id.buttonSubtraction, R.id.buttonEqual}) 
List<Button> button; 
@Bind(R.id.editText1) 
EditText editText; 

public String sign = ""; 
public Double mathDouble, mathDouble2; 

static final ButterKnife.Action<View> DISABLE = new ButterKnife.Action<View>() { 
    @Override 
    public void apply(View view, int index) { 
     view.setEnabled(false); 
    } 
}; 
static final ButterKnife.Setter<View, Boolean> ENABLED = new ButterKnife.Setter<View, Boolean>() { 
    @Override 
    public void set(View view, Boolean value, int index) { 
     view.setEnabled(value); 
    } 
}; 

//Buttons 0-9 
@OnClick({R.id.button0, R.id.button1, R.id.button2, R.id.button3, R.id.button4, R.id.button5, R.id.button6, R.id.button7, R.id.button8, 
     R.id.button9, R.id.buttonDot}) 
void inputValue(Button button) { 
    editText.append(button.getText()); 
} 

@OnClick({R.id.buttonPlus, R.id.buttonSubtraction, R.id.buttonDivision, R.id.buttonMultiplication}) 
void inputSign(Button button) { 
    sign = button.getText().toString(); 
    editText.append(sign); 
} 

public Double FirstValue() { 
    String writtenText = editText.getText().toString(); 
    String firstValue = writtenText.substring(0, writtenText.indexOf("+")); 

    return mathDouble = Double.parseDouble(firstValue); 
} 

Double SecondValue() { 
    String writtenText = editText.getText().toString(); 
    String secondValue = writtenText.substring(writtenText.indexOf("+") + 1, writtenText.charAt(writtenText.length() - 1)); 
    return mathDouble2 = Double.parseDouble(secondValue); 
} 

//Buttons Equal, CE and C 
@OnClick(R.id.buttonC) 
void WriteLeftBracket() { 
    editText.setText(String.valueOf("")); 
} 

@OnClick(R.id.buttonDeleteLastSymbol) 
void WriteRightBracket() { 
    if (editText.getText().toString().length() > 0) { 
     editText.setText(editText.getText().toString().substring(0, editText.getText().toString().length() - 1)); 
     editText.setSelection(editText.getText().length()); 
    } 
} 

@OnClick(R.id.buttonEqual) 
void Equal(Button button) { 
    editText.append(button.getText()); 
    editText.setText(Double.toString(mathDouble + mathDouble2)); 
} 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 
    ButterKnife.bind(this); 
} 
} 

content_main.xml

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior" 
    tools:context=".MainActivity" 
    tools:showIn="@layout/activity_main"> 

    <LinearLayout 
     android:id="@+id/layout1" 
     android:layout_width="match_parent" 
     android:layout_height="60dp"> 

     <EditText 
      android:id="@+id/editText1" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:singleLine="true" 
      android:lines="1" 
      /> 

    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/linearLayout1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/layout1"> 

     <Button 
      android:id="@+id/buttonC" 
      android:layout_width="80dp" 
      android:layout_height="80dp" 
      android:text="@string/erase" 
      android:textSize="30sp" /> 

     <Button 
      android:id="@+id/buttonDeleteLastSymbol" 
      android:layout_width="80dp" 
      android:layout_height="80dp" 
      android:text="@string/delete" 
      android:textStyle="bold" 
      android:textSize="30sp" /> 

     <Button 
      android:id="@+id/buttonMultiplication" 
      android:layout_width="80dp" 
      android:layout_height="80dp" 
      android:text="@string/multiplication" 
      android:textSize="30sp" /> 

    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/linearLayout2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/linearLayout1"> 

     <Button 
      android:id="@+id/button7" 
      android:layout_width="80dp" 
      android:layout_height="80dp" 
      android:layoutDirection="inherit" 
      android:text="@string/seven" 
      android:textSize="30sp" /> 

     <Button 
      android:id="@+id/button8" 
      android:layout_width="80dp" 
      android:layout_height="80dp" 
      android:layoutDirection="inherit" 
      android:text="@string/eight" 
      android:textSize="30sp" /> 

     <Button 
      android:id="@+id/button9" 
      android:layout_width="80dp" 
      android:layout_height="80dp" 
      android:layoutDirection="inherit" 
      android:text="@string/nine" 
      android:textSize="30sp" /> 
    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/linearLayout3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/linearLayout2"> 

     <Button 
      android:id="@+id/button4" 
      android:layout_width="80dp" 
      android:layout_height="80dp" 
      android:layoutDirection="inherit" 
      android:text="@string/four" 
      android:textSize="30sp" /> 

     <Button 
      android:id="@+id/button5" 
      android:layout_width="80dp" 
      android:layout_height="80dp" 
      android:layoutDirection="inherit" 
      android:text="@string/five" 
      android:textSize="30sp" /> 

     <Button 
      android:id="@+id/button6" 
      android:layout_width="80dp" 
      android:layout_height="80dp" 
      android:layoutDirection="inherit" 
      android:text="@string/six" 
      android:textSize="30sp" /> 
    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/linearLayout4" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/linearLayout3"> 

     <Button 
      android:id="@+id/button1" 
      android:layout_width="80dp" 
      android:layout_height="80dp" 
      android:layoutDirection="inherit" 
      android:text="@string/one" 
      android:textSize="30sp" /> 

     <Button 
      android:id="@+id/button2" 
      android:layout_width="80dp" 
      android:layout_height="80dp" 
      android:layoutDirection="inherit" 
      android:text="@string/two" 
      android:textSize="30sp" /> 

     <Button 
      android:id="@+id/button3" 
      android:layout_width="80dp" 
      android:layout_height="80dp" 
      android:layoutDirection="inherit" 
      android:text="@string/three" 
      android:textSize="30sp" /> 
    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/linearLayout5" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/linearLayout4"> 

     <Button 
      android:id="@+id/button0" 
      android:layout_width="160dp" 
      android:layout_height="80dp" 
      android:layoutDirection="inherit" 
      android:text="@string/zero" 
      android:textSize="30sp" /> 

     <Button 
      android:id="@+id/buttonDot" 
      android:layout_width="80dp" 
      android:layout_height="80dp" 
      android:layoutDirection="inherit" 
      android:text="@string/dot" 
      android:textSize="30sp" /> 
    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/linearLayout6" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/layout1" 
     android:layout_toRightOf="@id/linearLayout1"> 

     <Button 
      android:id="@+id/buttonDivision" 
      android:layout_width="80dp" 
      android:layout_height="80dp" 
      android:layoutDirection="inherit" 
      android:text="@string/division" 
      android:textSize="30sp" /> 

    </LinearLayout> 

    <Button 
     android:id="@+id/buttonSubtraction" 
     android:layout_width="80dp" 
     android:layout_height="80dp" 
     android:layout_below="@+id/linearLayout1" 
     android:layout_toEndOf="@+id/linearLayout1" 
     android:text="@string/subtraction" 
     android:textSize="30sp" /> 

    <Button 
     android:id="@+id/buttonEqual" 
     android:layout_width="80dp" 
     android:layout_height="80dp" 
     android:layout_below="@+id/linearLayout2" 
     android:layout_toEndOf="@+id/linearLayout1" 
     android:text="@string/equal" 
     android:textSize="30sp" /> 
    <Button 
     android:id="@+id/buttonPlus" 
     android:layout_width="80dp" 
     android:layout_height="160dp" 
     android:layout_below="@+id/linearLayout3" 
     android:layout_toEndOf="@+id/linearLayout1" 
     android:text="@string/plus" 
     android:textSize="30sp" 

     /> 

</RelativeLayout> 

的strings.xml

<resources> 
    <string name="app_name">Calculator</string> 
    <string name="action_settings">Settings</string> 
    <string name="dot">.</string> 
    <string name="plus">+</string> 
    <string name="subtraction">-</string> 
    <string name="division">/</string> 
    <string name="multiplication">*</string> 
    <string name="equal">=</string> 
    <string name="erase">C</string> 
    <string name="delete">←</string> 

    //Numbers 
    <string name="one">1</string> 
    <string name="two">2</string> 
    <string name="three">3</string> 
    <string name="four">4</string> 
    <string name="five">5</string> 
    <string name="six">6</string> 
    <string name="seven">7</string> 
    <string name="eight">8</string> 
    <string name="nine">9</string> 
    <string name="zero">0</string> 
    <string name="illegal_argument_exeption">Cannot Divide By Zero!</string> 
</resources> 

回答

0

使用该得到的值:

getResources().getString("R.string.StringName"); 

例如

String zero = getResources().getString("R.string.zero"); 
0

你必须只使用

getResources().getString(R.string.stringName) 
相关问题