从首选项传递到活动

时间:2014-12-22 23:51:10

标签: android preferences

我有一个活动 - 我希望从首选项传递值(在EditTextPreference中放置的数字)的工资。

看起来像这样: 的 ustawienia.xml

   <?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >

<EditTextPreference
    android:title="Przepracowane godziny" 
    android:key="godziny"
    android:summary="Wpisz przepracowane godziny"
    />

<EditTextPreference
    android:title="Stawka Godzinowa" 
    android:key="stawka"
    android:summary="Wpisz stawkę godzinową"
    />

<EditTextPreference
    android:title="ZUS" 
    android:key="zus"
    android:summary="Wpisz wielkość składki ZUS"
    />

</PreferenceScreen>

然后是Preferences类 - Ustawienia.java

package com.example.salary;

import android.os.Bundle;
import android.preference.PreferenceActivity;

public class Ustawienia extends PreferenceActivity{

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    addPreferencesFromResource(R.xml.ustawienia);
}
}

我希望将首选项中的值从 Salary.java 类中获取以使用数据。

package com.example.salary;

import java.text.DecimalFormat;

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class Salary extends Activity {


    Button przelicz;
    TextView brutto, na_czysto;
    EditText netto;

        SharedPreferences wez_ustawienia = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
        int godziny = wez_ustawienia.getInt("godziny", 21);


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


        przelicz = (Button)findViewById(R.id.b_przelicz);
        na_czysto = (TextView) findViewById(R.id.tv_salary);
        brutto = (TextView) findViewById(R.id.tv_brutto);
        netto = (EditText) findViewById(R.id.et_netto);
        przelicz.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                // TODO Auto-generated method stub
                double netto_int = Double.valueOf(netto.getText().toString());
                double kasa_brutto = netto_int * 0.25 + netto_int;
                DecimalFormat formatowanie = new DecimalFormat("#0.00");
                kasa_brutto = Double.valueOf(formatowanie.format(kasa_brutto));
                brutto.setText("Kwota brutto: \t" + kasa_brutto);

                double kasa_na_czysto = (netto_int - 1000);
                //DecimalFormat formatowanie = new DecimalFormat("#0.00");
                kasa_na_czysto = Double.valueOf(formatowanie.format(kasa_na_czysto));
                na_czysto.setText("Kwota na czysto:\t" + kasa_na_czysto);
            }
        });


    }


    @Override
    public boolean onCreateOptionsMenu(android.view.Menu menu) {
        // TODO Auto-generated method stub
        super.onCreateOptionsMenu(menu);
        MenuInflater nadmuchanie = getMenuInflater();
        nadmuchanie.inflate(R.menu.menu, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // TODO Auto-generated method stub
      switch(item.getItemId()){
      case R.id.oAutorze:
          Intent a = new Intent("com.example.salary.OAUTORZE");
          startActivity(a);
          break;
      case R.id.ustawienia:
          Intent u = new Intent("com.example.salary.USTAWIENIA");
          startActivity(u);
          break;
      case R.id.wyjscie:
          finish();
          break;
      }

      return false;
    }


}

然而,在我添加这段代码后应用程序崩溃了:

SharedPreferences wez_ustawienia = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
        int godziny = wez_ustawienia.getInt("godziny", 21);

这是怎么回事? 我可以因为addPreferencesFromResource(R.xml.ustawienia);被弃用而引起错误吗?

0 个答案:

没有答案