public class TestFragment extends Fragment{
private FeatureCoverFlow coverFlow;
private FoodAdapter foodAdapter;
private List<Food> foodList = new ArrayList<>();
private TextSwitcher mTitle;
private Context mContext;
private Dialog myDialog;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
final View view = inflater.inflate(R.layout.fragment_test, container, false);
initData();
mTitle = (TextSwitcher)view.findViewById(R.id.mtitle);
myDialog = new Dialog(getContext());
mTitle.setFactory(new ViewSwitcher.ViewFactory() {
@Override
public View makeView() {
LayoutInflater inflater = LayoutInflater.from(getContext());
TextView txt = (TextView)inflater.inflate(R.layout.layout_title,null);
return txt;
}
});
final Animation in = AnimationUtils.loadAnimation(getContext(), R.anim.slide_in_top);
Animation out = AnimationUtils.loadAnimation(getContext(), R.anim.slide_out_bottom);
mTitle.setInAnimation(in);
mTitle.setOutAnimation(out);
foodAdapter = new FoodAdapter(foodList,getContext());
coverFlow = (FeatureCoverFlow)view.findViewById(R.id.coverFlow);
coverFlow.setAdapter(foodAdapter);
coverFlow.setOnScrollPositionListener(new FeatureCoverFlow.OnScrollPositionListener() {
@Override
public void onScrolledToPosition(int position) {
mTitle.setText(foodList.get(position).getCaption());
}
@Override
public void onScrolling() {
}
});
/**
coverFlow.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Intent intent= new Intent(getContext(), FoodDetailActivity.class);
intent.putExtra("Food INdex",i);
startActivity(intent);
}
});**/
coverFlow.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
Log.d(TAG, "onItemClick: selected Food:" + foodList.get(position).toString());
Intent intent = new Intent(getContext(),FoodDetailActivity.class);
startActivity(intent);
}
});
return view;
}
public void initData(){
final FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
DatabaseReference DB = FirebaseDatabase.getInstance().getReference().child("photos");
DB.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
if (dataSnapshot.exists()){
Food item = new Food(dataSnapshot.getKey(), dataSnapshot.child("image_path").getValue().toString(),dataSnapshot.child("caption").getValue().toString());
foodList.add(item);
foodAdapter.notifyDataSetChanged();
}
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
我想点击片段中的图片(Firebase数据库) 而且我希望在新的活动中看到完全相同的图像......
public class FoodDetailActivity extends AppCompatActivity {
KenBurnsView food_image;
TextView food_title, food_caption;
private List<Food> foodList = new ArrayList<>();
private FoodAdapter foodAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_food_detail);
food_image =(KenBurnsView)findViewById(R.id.food_image);
food_title = (TextView)findViewById(R.id.food_title);
food_caption =(TextView)findViewById(R.id.food_summary);
if (getIntent() != null){
int food_index = getIntent().getIntExtra("Food_Index", -1);
if (food_index != -1)
loadFoodDetail(food_index);
}
}
public void loadFoodDetail(int index) {
Food food = Common.foodList.get(index);
Picasso.with(getBaseContext()).load(food.getImage_path()).into(food_image);
food_caption.setText(food.getCaption());
food_title.setText(food.getCaption());
}
......我读了很多教程,但我不知道为什么,但我不理解。 所以,如果有人有想法,请分享 我试图用意图去做,但它没有用 也许我需要一个新的AdapterClass用于我的Activity而不是有另一个问题,我怎么能得到相同的imageURL?
答案 0 :(得分:0)
通过Intent通过片段将值传递给activity,并将其设置为Activity的Imageview。