رفتن به مطلب
  • 0

مشکل این چند خط کد در اندروید استودیو


مجتبی خیری

سوال

سلام

من میخواستم برنامه ای بنویسم که یک اکتیویتی فقط برای بار اول نمایش داده بشه و بس

دیگه با اجرای بعدی نمایش داده نشه

از shared preference استفاده کردم از نظر تئوری کدهام مشکلی نداره ولی اجرا نمیشه

من اومدم در اکتیویتی که میخوام یک بار اجرا بشه گفتم اگر که روی باتن کلیک شد بره اکتیویتی بعدی و shared preference رو اجرا کنه

بعد در ابتدا اومدم چک کردم که اگر ست شده بود یعنی کاربر برای اولین بار نیست که اپ رو باز می کنه و باید بره اکتیویتی دومی

ولی عمل نمی کنه :( 

package com.example.abcd.sharedpreferencesproject;

import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

  public static final String FIRST = "first";
  SharedPreferences sharedPreferences;
  Button btn;
  SharedPreferences.Editor editor;

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

    sharedPreferences = getSharedPreferences(FIRST, Context.MODE_PRIVATE);
    btn = (Button) findViewById(R.id.btnNext);

    if (sharedPreferences.contains("First")){
      Toast.makeText(this , "aaa" , Toast.LENGTH_SHORT).show();
      startActivity(new Intent(getApplicationContext(), Main2Activity.class));
    }


  }

  public void next(View view) {
    editor = sharedPreferences.edit();
    editor.putString("Fitst", "true");
    editor.apply();
    startActivity(new Intent(getApplicationContext(), Main2Activity.class));
  }

}

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

2 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

سلام.خدمت شما.

 

 

package com.example.jafar.myapplication256;

import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
Button next;
    Intent intent;
    Context context;
    SharedPreferences preferences;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        next=(Button)findViewById(R.id.next);
        intent=new Intent(MainActivity.this,Main2Activity.class);

        preferences = PreferenceManager.getDefaultSharedPreferences(G.context);
        SharedPreferences.Editor editor = preferences.edit();
        editor.putString("FIRST", "yes");
        editor.commit();
        preferences = PreferenceManager.getDefaultSharedPreferences(G.context);
        String value = preferences.getString("FIRST","no");
        if(value=="yes"){

            Toast.makeText(MainActivity.this,"this is first time",Toast.LENGTH_SHORT).show();


        }
        else{
            Toast.makeText(MainActivity.this,"this isn't first time",Toast.LENGTH_SHORT).show();
            startActivity(intent);
            finish();
        }


        next.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startActivity(intent);
                finish();
            }
        });
    }
}

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

اول اینکه پیشنهاد میکنم بجای string از boolean برا اینکار استفاده کنی

و اینجا اینکارو کن احتمالا حل شه:

 
    if (sharedPreferences.getString(FIRST,"").contains("First")){

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...