2017-05-15 7 views
-1

私はシンプルなノート活性を有する...そこからユーザーがテキストを挿入し、二つのボタンでそれらを保存したり、読み込むことができます...しかし、私が持っている問題がある... exampleEdittextが空の場合の設定方法。 sharedpreferenceは格納されませんか?

を私は知りません保存されたテキストを上書きする空のボックスを保存できるので、空のエディットテキストを保存しないようにする方法。古いテキストをロードしようとしたとき、あなたが任意のコードが必要な場合、ユーザーは..テキストを失うことになる私に教えてください。..

public static final String FILENAME="ShareDATA"; 
 
    public static final String KEYNAME="key"; 
 
    private SharedPreferences sharedpreference; 
 
    EditText edittext; 
 
    Button save,load; 
 
    TextView tv3, texf; 
 

 
    @Override 
 
    public void onCreate(Bundle savedInstanceState) { 
 
     super.onCreate(savedInstanceState); 
 
     setContentView(R.layout.activity_shared_preference); 
 

 
     texf = (TextView) findViewById(R.id.textView3); 
 
     texf.setTypeface(Typeface.createFromAsset(getAssets(), "rrabar.ttf")); 
 

 
     tv3 = (TextView) findViewById(R.id.textferk); 
 
     tv3.setTypeface(Typeface.createFromAsset(getAssets(), "rrabar.ttf")); 
 

 

 
     edittext=(EditText)findViewById(R.id.EditText01); 
 
     save=(Button)findViewById(R.id.Button01); 
 
     load=(Button)findViewById(R.id.Button02); 
 

 

 
     try{ 
 
      save.setOnClickListener(new OnClickListener() { 
 

 
       @Override 
 
       public void onClick(View v) { 
 

 
        sharedpreference=getSharedPreferences(FILENAME, MODE_PRIVATE); 
 
        Editor editor=sharedpreference.edit(); 
 
        editor.putString(KEYNAME, edittext.getText().toString()); 
 
        editor.apply(); 
 
        edittext.setText(""); 
 
       } 
 
      }); 
 
     } 
 
     catch (Throwable e) { 
 
      Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_LONG); 
 
     } 
 

 
     try{ 
 

 
      load.setOnClickListener(new OnClickListener() { 
 

 
       @Override 
 
       public void onClick(View v) { 
 
        sharedpreference=getSharedPreferences(FILENAME, MODE_PRIVATE); 
 
        edittext.setText(sharedpreference.getString(KEYNAME, "نووسینی نیشانه‌كراو بوونی نییه‌.")); 
 

 
       } 
 
      }); 
 
     } 
 
     catch (Exception f) { 
 
      Toast.makeText(getApplicationContext(), f.toString(), Toast.LENGTH_LONG).show(); 
 

 
     } 
 

 
    }

はあなたの助け

のためにありがとうございました
+0

edittext.getText()。のtoString()。長さ()0 – Pavya

+0

と比較ありがとう..私つもりはこれを試してみて、あなたは:) – Khamkhor

+0

をお知らせしていますが、あなたのコードを投稿してくださいできますか? – FAT

答えて

0

はちょうどあなたがデータ

... 
@Override 
public void onClick(View v) { 
    if (editText.getText().toString().trim().length() > 0) { 
     // store data 
    } 
    else { 
     // show error message or something 
    } 
} 
+0

大変ありがとうございました:) – Khamkhor

+0

20分後に投稿された回答を受け入れました。これは基本的には同じですが、あなたのコードを投稿した後です – Denny

+0

申し訳ありません私はあなたの意見を持っています。それはあなたの権利です。私はこのウェブサイトを初めて知りました。それはなぜ起こったのですか? – Khamkhor

0

を保存する前に、XML秒で無効にデフォルトとしてButtonを設定することができ、チェックを追加しますandroid:enabled=falseのようなものです。その後、EditTextTextChangeListenerを置き、テキストの長さが0より大きい場合はButtonを有効にします。

0

だけの簡単な条件を確認してください

 if (!editText.getText().toString().trim().equals("")) { 
     // store data 
    } else { 
     // show error message or something 
    } 
+0

あなたの助けを大変ありがとう、私の友人:) – Khamkhor

+0

@Khamkhor私の答えを受け入れてください。 –

+0

私はそれを受け入れるのが好きですが、デニーの答えを受け入れるのは正しいですが、最初に助けてくれてありがとう、そして大変ありがとうございます:) – Khamkhor

0

これを試してみてください:

save.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 

       if (edittext.getText().toString().trim().length() > 0) { 

        sharedpreference = getSharedPreferences(FILENAME, MODE_PRIVATE); 
        Editor editor = sharedpreference.edit(); 
        editor.putString(KEYNAME, edittext.getText().toString()); 
        editor.apply(); 
       } else { 
        Toast.makeText(getApplicationContext(), "Please enter something...", Toast.LENGTH_SHORT).show(); 
       } 

       // Clear 
       edittext.setText(""); 
      } 
     }); 

String.trim()方法は からleadingtrailingスペースをなくし文字列。 を返します。値はこの文字列で、先頭と末尾はすべてwhitespaceです。

+0

私の兄弟、 ) – Khamkhor

+0

大歓迎:) – FAT

+0

申し訳ありません私の兄弟...私はこのウェブサイトを初めて利用しています\t 私は本当にあなたの答えを受け入れていますが、彼が最初に助けたようにデニーの答えを受け入れるのは正しいことですが、素晴らしい一日を持っています:) – Khamkhor

関連する問題