java - 文本没有显示,因为它必须显示! (字符串)

标签 java android boolean preferences shared

好的,多亏了下面的家伙,最大的问题已经解决了。但无论我打印出来什么,都不会被打印出来,而且我也无法打印出在第 2 类(nimekysija)中输入的消息:(。我真的需要它存储名称,并且将来它每次都会写下名称!谢谢你的帮助!

问题必须属于第二类。当我更新 editor.putString("nimi2", nimiS); 时nimiS 进入“plapla”,然后 plapla 实际上出现了:/。所以我真的不知道,问题出在哪里!

(下面的类也更新到最新)

<小时/>

第 1 类:

package viimane.voimalus;

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.widget.TextView;

public class MainStuff extends Activity {
    TextView tere;
    String nimi;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.menu);
        tere = (TextView) findViewById(R.id.tvTere);
        SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
        boolean nimiOlemas = preferences.getBoolean("nimionolemas", false);
        if (nimiOlemas == false){
             startActivity(new Intent("viimane.voimalus.NIMEKYSIJA"));
             finish();
        }
        if (nimiOlemas == true){
            nimi = preferences.getString("nimi2", "");
            System.out.print("töötab!");

            tere.setText("Tere " + nimi);
        }
        System.out.print("töötab2!");
    }
}
<小时/>

2 级

package viimane.voimalus;

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

public class nimekysija extends Activity {

    EditText nimi;
    SharedPreferences preferences;
    String nimiS;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.nimekysija);
        preferences = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
        nimi = (EditText) findViewById(R.id.etNimekysija);
        nimiS = nimi.getText().toString();
        Button kysOk = (Button) findViewById(R.id.bNimekysija);
        kysOk.setOnClickListener(new View.OnClickListener() {      

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                SharedPreferences.Editor editor = preferences.edit();
                editor.putString("nimi2", nimiS); // nime kirjutamine
                editor.putBoolean("nimionolemas", true); // nimi on kirjutatud!
                editor.commit();
                startActivity(new Intent("viimane.voimalus.MAINSTUFF"));
                finish();

            }
        });
    }

}

最佳答案

好吧,我猜您可能是 Java 新手,如果我不正确,请原谅我。你从来没有读过 nimiOlemas 的文章。

 boolean nimiOlemas = preferences.getBoolean("nimionolemas", false);
    nimiOlemas = false;
                startActivity(new Intent("viimane.voimalus.NIMEKYSIJA"));
                finish();
               nimiOlemas = true;

我认为你想要做的是初始化nimiOlemas,然后,如果它是假的,启动一个 Activity ,调用完成,然后将nimiOlemas设置为true,但这不是你正在做的。这是你想要的吗?

boolean nimiOlemas = preferences.getBoolean("nimionolemas", false);
if (nimiOlemas == false)
{
     startActivity(new Intent("viimane.voimalus.NIMEKYSIJA"));
     finish();
     nimiOlemas = true;
}

= 是赋值,== 是 boolean 比较。您在问题中说您检查了 boolean 值的值,但您从不这样做,您只是分配给它。

关于java - 文本没有显示,因为它必须显示! (字符串),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7004797/

相关文章:

java - 创建用 "sir"替换 "dawg"的方法?

java - 捕获由特殊字符嵌套/包围的正则表达式组

java - 使用 Java 泛型通过对象列表递归对象(每个对象都有另一个对象列表)

java - AVD 没有 LogCat 输出?

android - 将 mp3 添加到 ContentResolver

algorithm - Strassen算法可以用于 boolean 矩阵乘法吗?

java - 通过按钮使用组合框值

android - 使用 ImageView 作为 Android 布局的背景

ios - BOOL 在模拟器上记录正常,但在 iPhone 上记录数字,如 96、-32 等

java - java 中的内容根据 boolean 值进行更改