2017-04-01 71 views
0

我正在尝试制作一个应用程序,其中有许多城市,我想添加最喜欢的城市。我通过在城市形象下面制作一个心形按钮来做到这一点。当点击收藏夹按钮时,按钮变成粉红色。就像Instagram一样。但是每当我离开选定的城市时,按钮就会回到正常状态。我希望它被选为收藏夹。我所做的是,无论何时点击按钮,它都会添加到收藏夹中,再次单击时会从收藏夹中删除。请。任何人都可以帮忙吗?这里是我的代码CitySelectedActivity.java如何使imagebutton永久移出活动?

private String PICK_CITYSELECTED=" "; 
private ImageView imageView; 
private StorageReference mStorage; 
private TextView mTextView; 
private ViewPager viewPager; 
//int[] mResources={R.drawable.manali,R.drawable.manali2,R.drawable.manali3,R.drawable.manali4}; 
CustomSwipeAdapter adapter; 
private static int currentpage=0; 
private static int numpages=0; 
private int[] img; 
private FirebaseDatabase firebaseDatabase; 
private DatabaseReference databaseReference; 
private TextView textView; 
private ImageButton favouriteBtn; 
private boolean showingFirst=true; 
private SharedPreferences pref; 








@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_city_selected); 
    mStorage= FirebaseStorage.getInstance().getReference(); 
    Intent intent=getIntent(); 
    PICK_CITYSELECTED=intent.getExtras().getString("PICK_CITY"); 
    Toast.makeText(this, PICK_CITYSELECTED, Toast.LENGTH_SHORT).show(); 
    final Boolean isFirstRun=getSharedPreferences("PREFERENCE",MODE_PRIVATE).getBoolean("isFirstrun",true); 
    favouriteBtn=(ImageButton) findViewById(R.id.buttonfav); 
    favouriteBtn.setImageResource(R.drawable.like24); 
    favouriteBtn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if(showingFirst==true) 
      { 
       getSharedPreferences("PREFERENCE",MODE_PRIVATE).edit().putBoolean("isFirstrun",false).apply(); 
       favouriteBtn.setImageResource(R.drawable.likepink24); 
       //showingFirst=false; 
      } 
      else 
      { 
       favouriteBtn.setImageResource(R.drawable.like24); 
       showingFirst=true; 
      } 
     } 
    }); 

这里是我的XML文件中的代码activity_city_selected.xml

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context="com.example.srushtee.dummy.CitySelectedActivity" 
android:fillViewport="true" 
> 
<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/relativelayout1"> 

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/relativelayout" 
    android:layout_marginBottom="20dp"> 
    <android.support.v4.view.ViewPager 
     android:layout_width="match_parent" 
     android:layout_height="200dp" 
     android:id="@+id/view_pager" 
     tools:layout_editor_absoluteY="8dp" 
     tools:layout_editor_absoluteX="8dp" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" /> 
    <me.relex.circleindicator.CircleIndicator 
     android:layout_width="match_parent" 
     android:layout_height="10dp" 
     android:layout_alignBottom="@+id/view_pager" 
     android:layout_alignParentStart="true" 
     android:layout_alignParentLeft="true" 
     android:layout_marginBottom="10dp" 
     android:id="@+id/indicator"> 

    </me.relex.circleindicator.CircleIndicator> 

</RelativeLayout> 
<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="bottom|center" 
    android:layout_alignParentBottom="true" 
    android:layout_alignBottom="@+id/relativelayout1" 
    android:gravity="bottom" 
    android:id="@+id/linearLayout2"> 
    <Button 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/continue_booking" 
     android:text="Continue Booking" 
     android:layout_weight="1"/> 

</LinearLayout> 

    <ImageButton 
     android:id="@+id/buttonfav" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_above="@+id/linearLayout2" 
     android:layout_centerHorizontal="true" 
     android:layout_marginBottom="205dp" 
     android:background="@null" /> 

</RelativeLayout> 

回答

0

1.创建一个新的类文件。我把它命名为ConstantNames.java

这是ConstantNames.java的代码文件

(nameArrayList是静态的,所以它会关闭该应用程序后,也包含值)

public class ConstantNames { 
    public final static HashSet<String> nameArrayList=new HashSet<>(); 
} 

2.在您的MainActivity.java => onClickListener =>将该值添加到nameArrayList中

这是在nameArrayList增加值码

注:HashSet的contanins唯一的值,如果你想dublicate值,则可以使用ArrayList

oneImageButton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       ConstantNames.nameArrayList.add("your_value_name"); 
       Toast.makeText(Main2Activity.this, "saved", Toast.LENGTH_SHORT).show(); 
      } 
     }); 
+0

我没有得到它。它将如何帮助? – srushteehappy