نقل قول:چه طوزی میشه به تکس باکس مقدار پیش فرض داد؟و حتی کاربر بتونه مقدار وارد کنه؟ قابل مشاهده هم نباشه؟
در صورتی هم که کاربر مقدار وارد کرد مقدار پیش فرض از بین بره
با سلا م .
سوالتون رو خوب شرح ندادین !
سوال - چه طوری میشه به تکس باکس مقدار پیش فرض داد؟
در پست بالا توسط دوست عزیز PHELAT توضیح داده شد .
در ضمن در فایل Xml می توانید از Hint هم استفاده کنید (که بعید میدونم به کار شما بیاد ! )
سوال - و حتی کاربر بتونه مقدار وارد کنه؟
پاسخ :کاربر با تایپ کردن درون کادر TextBox می تواند مقدار جدید را وارد کند .
سوال - قابل مشاهده هم نباشه؟
پاسخ : اگه منظورتون اینه که متن نوشته شده در قالب خودش نمایش داده نشه می تونین از Text Field با عنوان Password استفاده کنین که متن وارد شده رو به صورت دایره های تو پر سیاه نشون میده ! (همون کادر وارد کردن پسورد در سایت ها منظورمه )
سوال - در صورتی هم که کاربر مقدار وارد کرد مقدار پیش فرض از بین بره
پاسخ : اگه منظورتون اینه که با وارد کردن مقدار جدید ، مقدار پیش فرض پاک بشه و جای اون مقدار جدید جایگزین بشه ، راه حل بنده اینه که از کلاس SharedPreferences استفاده کنین .
مثال :
این نمونه ای که من واستون ذکر میکنم اینجوریه که مقدار پیش فرض first invisible Text (اینجا چون از Password استفاده کردم مقدار اولیه رو به صورت دایره های تو پر نشون میده )رو نشون میده و کاربر با پاک کردن اون و وارد کردن مقدار جدید و زدن دکمه save مقدار جدید رو جایگزین مقدار پیش فرض (first invisible Text) میکنه .
کد Xml :
کد پیاچپی:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
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"
tools:context="com.Alireza.test.MainActivity" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="78dp"
android:layout_marginTop="110dp"
android:text="save" />
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="24dp"
android:layout_marginTop="26dp"
android:ems="10"
android:inputType="textPassword" >
<requestFocus />
</EditText>
</RelativeLayout>
کد جاوا :
کد پیاچپی:
package com.Alireza.test;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.content.SharedPreferences;
import android.os.Bundle;
public class MainActivity extends ActionBarActivity {
String prefs_name = "myPrefsFile";
SharedPreferences share ;
String myText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final EditText txt = (EditText)findViewById(R.id.editText1);
Button bt = (Button) findViewById ( R.id.button1);
share = getSharedPreferences(prefs_name,MODE_PRIVATE);
myText = share.getString("myString", " first invisible Text");
txt.setText(myText);
OnClickListener listen = new OnClickListener() {
@Override
public void onClick(View arg0) {
myText =txt.getText().toString();
SharedPreferences.Editor editor =share.edit();
editor.putString("myString", myText);
editor.commit();
txt.setText(myText);
}
};
bt.setOnClickListener(listen);
}
}
موفق باشید .
*** بحث نکن ، به فکر راه حل باش ***