انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
نوشتن متغیر در سطح کلاس (در برنامه نویسی اندروید)

نوشتن متغیر در سطح کلاس (در برنامه نویسی اندروید)

#3
من تو برنامه ام از گرید ویو با image View pager استفاده کردم حالا وقتی میخوام اون عکس ها رو اشتراک گذاری کنم (share) رو هر کدم از عکس ها که برم فقط اون عکس اولی که تو آداپتر بود اشتراک گذاری میشه. چطوری میشه عکس یه که از image View pager آدرس دهی شده رو به اشتراک گذاشت؟؟؟

تو یه جایی خوندم که باید از  
onPageChangeListener استفاده کرد

این کد صفحه ای که عکس های گرید ویو رو نمایش میدست و برای عوض کردن عکس ها هم  از viewPager استفاده کردم و تو اکشن بار من یک دکمه گذاشتم که وقتی رو اون کلیک شد عکس اون صفحه رو اشترک گذاری کنه ولی وقتی رو اون دکمه کلیک میکنم فقط اولین عکس آداپتر رو share میکنه و وقتی عکس هم عوض میکنم باز هم همون عکسه اشتراک گذاری میشه!!

کد پی‌اچ‌پی:
package com.microprogram.postallcard;


import android.app.ActionBar;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.support.v4.view.ViewPager;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ImageView;
import android.widget.Toast;


import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;


import static com.microprogram.postallcard.R.id.pager;




public class 
Eshgh_ImageShow extends ActionBarActivity {


    @
Override
    
protected void onCreate(Bundle savedInstanceState) {
        
super.onCreate(savedInstanceState);
        
setTitle("عاشقانه");
        
setContentView(R.layout.activity_eshgh__image_show);
        
Intent p getIntent();
        
int position p.getExtras().getInt("id");


        
Eshgh_Adapter imageAdapter = new Eshgh_Adapter(this);
        List<
ImageViewimages = new ArrayList<ImageView>();


        for (
int i 0imageAdapter.getCount(); i++){
            
ImageView imageView= new ImageView (this);
            
imageView.setImageResource(imageAdapter.mThumbIds[i]);
            
imageView.setScaleType(ImageView.ScaleType.CENTER);
            
images.add(imageView);
        }


        
ImagePagerAdapter pagerAdapter = new ImagePagerAdapter(images);
        
ViewPager viewPag = (ViewPagerfindViewById(pager);
        
viewPag.setAdapter(pagerAdapter);
        
viewPag.setCurrentItem(position);


    }


    @
Override
    
public boolean onCreateOptionsMenu(Menu menu) {
        
// Inflate the menu; this adds items to the action bar if it is present.
        
getMenuInflater().inflate(R.menu.menu_eshgh__image_showmenu);
        return 
true;
    }


    @
Override
    
public boolean onOptionsItemSelected(MenuItem item) {
        
Intent p getIntent();
        
int position p.getExtras().getInt("id");
        
int i 0;
        
Eshgh_Adapter imageAdapter = new Eshgh_Adapter(this);
        switch (
item.getItemId()) {


            case 
R.id.share:
                
Bitmap bitmap;
                
OutputStream output;
                
Intent share;


                
bitmapBitmapFactory.decodeResource(getResources(),imageAdapter.mThumbIds[i]);
                
File filepath Environment.getExternalStorageDirectory();
                
File dir = new File (filepath.getAbsolutePath() + "/.PostallCard/");
                
dir.mkdirs();
                
File file = new File(dir"Eshgh.png");


                try {


                    
share = new Intent(Intent.ACTION_SEND);
                    
share.setType("image/jpeg");
                    
output = new FileOutputStream(file);
                    
bitmap.compress(Bitmap.CompressFormat.PNG100output);
                    
output.flush();
                    
output.close();
                    
Uri uri Uri.fromFile(file);
                    
share.putExtra(Intent.EXTRA_STREAM,uri);
                    
startActivity(Intent.createChooser(share"Share Image"));
                }
                catch(
Exception e){
                    
e.printStackTrace();
                }
                return 
true;
            case 
R.id.favorite:
                return 
true;


            default:
                return 
super.onOptionsItemSelected(item);


        }
    }

 
پاسخ


پیام‌های این موضوع
RE: نوشتن متغیر در سطح کلاس (در برنامه نویسی اندروید) - توسط mfn100 - ۱۳۹۳/۱۲/۲۲, ۰۱:۳۶ ق.ظ

پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان