Android共享偏好

时间:2013-11-22 06:13:43

标签: android sharedpreferences preferences

我正在尝试通过共享首选项创建应用程序,该共享首选项在一个活动中存储名为Title和Description的两个字段信息,而在其他活动中我试图显示这些值。我做得很好。

在第二个活动中,我创建了运行时文本视图,它从共享首选项中获取值(标题和描述)并在文本视图中打印它,但问题是,如果我再次使用共享首选项它存储值但它创建了新的屏幕,而不是相同的屏幕。

我想要做的是当用户保存它在文本视图中显示的共享首选项的第一个数据,然后第二次它应该显示在第一个数据下面的同一个活动上,而不是这样,它创建了新的活动。 / p>

我的代码(此活动用于存储共享首选项值)

public class Assignment_Create extends Activity {

ImageView imageViewSubmit;
EditText editTextTitle, editTextDesc;

private TextView activeDateDisplay;

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

    imageViewSubmit = (ImageView) findViewById(R.id.submit);

    editTextTitle = (EditText) findViewById(R.id.title);
    editTextDesc = (EditText) findViewById(R.id.description);


    imageViewSubmit.setOnClickListener(new View.OnClickListener() {
        public void onClick(View arg0) {

            Code.title = editTextTitle.getText().toString().trim();
            Code.description = editTextDesc.getText().toString().trim();
            sharedPrefernces();
            Toast.makeText(getApplicationContext(),
                    "Details are saved successfully", Toast.LENGTH_LONG)
                    .show();

            Intent intent = new Intent(Assignment_Create.this,
                    Assignment.class);
            startActivity(intent);
            Toast.makeText(getApplicationContext(),
                    "Assignment Created Succesfully", Toast.LENGTH_LONG)
                    .show();
            Assignment_Create.this.finish();

        }
    });
}



public void sharedPrefernces() {

    if (Code.title != null)
        PreferenceConnector.writeString(this, PreferenceConnector.TITLE,
                Code.title);
    if (Code.description != null)
        PreferenceConnector.writeString(this, PreferenceConnector.DESC,
                Code.description);
}
}

以下活动用于读取共享偏好值

public class Assignment extends Activity {

RelativeLayout relLayoutAssign;

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

    relLayoutAssign = (RelativeLayout) findViewById(R.id.assignment);
    ImageView imageView = (ImageView) findViewById(R.id.createassignment);

    readPerson();

    imageView.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            Intent intent = new Intent(Assignment.this,
                    Assignment_Create.class);
            startActivity(intent);
        }
    });
}

private void readPerson() {


        TextView textViewTitle = new TextView(Assignment.this);
        textViewTitle.setText(PreferenceConnector.readString(this,
                PreferenceConnector.TITLE, null));
        textViewTitle.setTextSize(30);
        textViewTitle.setTextColor(Color.RED);
        relLayoutAssign.addView(textViewTitle);

        TextView textViewDesc = new TextView(Assignment.this);
        textViewDesc.setText(PreferenceConnector.readString(this,
                PreferenceConnector.DESC, null));
        textViewDesc.setTextSize(40);
        textViewDesc.setTextColor(Color.BLUE);
        relLayoutAssign.addView(textViewDesc);

}
}

现在的问题是,当我在第二个活动中按下提交按钮时,它打开相同的屏幕,但不是在第一个共享首选项数据下面写下它打开新屏幕并在那里显示数据,如果我按下设备上的后退按钮我在另一项活动中获得了第一个共享偏好数据。

它还显示活动顶部的数据我只想在屏幕中间显示任何一个知道如何解决这个问题然后请帮忙。我在谷歌搜索了很多但没有解决这个问题。

0 个答案:

没有答案