PDA

View Full Version : به اشتراک گزاری یک متن از ListView



amirarcs
جمعه 25 بهمن 1392, 14:20 عصر
با سلام.
دوستان من می خوام متن های داخل لیست ویو را به اشتراک بزارم با یک دکمه. کد ها رو نوشتم اما یک قسمت ایراد دارم.

این آداپتور من هست




public class VerseAdapterGhazaliat extends ArrayAdapter<Verse> {

List<Verse> verses2;

Context c;
DBAdapter db;

public VerseAdapterGhazaliat(Context c, List<Verse> verses2) {
super(c, android.R.id.content, verses2);
this.c = c;
this.verses2 = verses2;
}

public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater vi = (LayoutInflater) c
.getSystemService(Context.LAYOUT_INFLATER_SERVICE) ;
View view = vi.inflate(R.layout.listviewmain,null);
final Verse verse1 = verses2.get(position);
final Typeface kodak = Typeface.createFromAsset(c.getAssets(),"fonts/BKoodkBd.ttf");

TextView txtlistview = (TextView) view.findViewById(R.id.txtlistview);
txtlistview.setText(verse1.getname());
txtlistview.setTypeface(kodak);
txtlistview.setTextSize(TypedValue.COMPLEX_UNIT_PX , VerseAdapter.fontSize);


return view;

}

}





اینم اکتیویتی من که سوال را دخل این مطرح کردم




public class AnvariGhazaliatVerse extends ListActivity{
Verse verse;
List<Verse> verses2;
DBAdapter db;
String tabalename2 = DBAdapter.DATABASE_MAINTABLE2;

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.anvari_ghazaliat_verse);
final Button btnshare = (Button) findViewById(R.id.button1);
Bundle b = getIntent().getExtras();
verse = b.getParcelable(".matbakh.Food");

try {
String destPath = "/data/data/" + getPackageName() +
"/databases";
File f = new File(destPath);
if (!f.exists()) {
f.mkdirs();
f.createNewFile();

//---copy the db from the assets folder into
// the databases folder---
CopyDB(getBaseContext().getAssets().open("anvari_poem"),
new FileOutputStream(destPath + "/anvari_poem"));
Log.i("masha", "masha");
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}


db = new DBAdapter(this);
db.open();

final ImageButton setting = (ImageButton) findViewById(R.id.setting);
final ImageButton zmanfi = (ImageButton) findViewById(R.id.zmanfi);
final ImageButton zmosbat = (ImageButton) findViewById(R.id.zmosbat);
final AlphaAnimation pranim =new AlphaAnimation(0f, 1f);
pranim.setDuration(1000);
final AlphaAnimation kranim =new AlphaAnimation(1f, 0f);
kranim.setDuration(1000);
kranim.setStartOffset(1000);
zmanfi.startAnimation(kranim);
zmosbat.startAnimation(kranim);
zmosbat.setVisibility(View.INVISIBLE);
zmanfi.setVisibility(View.INVISIBLE);

zmanfi.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view)
{

VerseAdapter.fontSize = VerseAdapter.fontSize -1f ;

zmanfi.startAnimation(kranim);
zmosbat.startAnimation(kranim);
zmanfi.setVisibility(View.INVISIBLE);
zmanfi.setVisibility(View.INVISIBLE);
tazesazi();
}
});
zmosbat.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view)
{
VerseAdapter.fontSize = VerseAdapter.fontSize + 1f ;
zmanfi.startAnimation(kranim);
zmosbat.startAnimation(kranim);
zmosbat.setVisibility(View.INVISIBLE);
zmanfi.setVisibility(View.INVISIBLE);
tazesazi();
}
});
setting.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
zmanfi.startAnimation(pranim);
zmosbat.startAnimation(pranim);
zmosbat.setVisibility(View.VISIBLE);
zmanfi.setVisibility(View.VISIBLE);
//Thread.sleep(200);
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
zmanfi.startAnimation(kranim);
zmosbat.startAnimation(kranim);
zmosbat.setVisibility(View.INVISIBLE);
zmanfi.setVisibility(View.INVISIBLE);
}
}, 1000);

}
});

btnshare.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_TEXT,??????????) ; // injaii ke ? gozashtam ra nemidonam chi bezaram. chon mikham kole chizaii ke
// dakhele list view hast chap beshe. man ye bar omadam az verse.getname() dakhele in ghesmat estefade kardam
//amma faghat yek ghesmat az listView ersal mishod na hamash.
// khahesh mikonam komakam konin
shareIntent.putExtra(Intent.EXTRA_SUBJECT, "انوری");
startActivity(Intent.createChooser(shareIntent, "به اشتراک بگذارید با ..."));
}
});

}
@Override
protected void onPause() {
super.onPause();

db.close();
Log.i(DBAdapter.TAG, "database baste shod!");
}
@Override
protected void onResume() {
super.onResume();
db.open();
Log.i(DBAdapter.TAG, "database baz shod!");
verses2 = db.getPoemVerses(verse.getId(), tabalename2);
tazesazi();
}
private void tazesazi() {
ArrayAdapter<Verse> adapter;
adapter = new VerseAdapterGhazaliat(this, verses2);

setListAdapter(adapter);
}


public void CopyDB(InputStream inputStream,
OutputStream outputStream) throws IOException {
//---copy 1K bytes at a time---
byte[] buffer = new byte[1024];
int length;
while ((length = inputStream.read(buffer)) > 0) {
outputStream.write(buffer, 0, length);
}
inputStream.close();
outputStream.close();
}

}




سوالم داخل خود کد نوشتم

shahin bahari
جمعه 25 بهمن 1392, 19:13 عصر
خوب شما یه متد تو آداپتر اضافه کنید که verse انتخاب شده رو از آزایه داخلش برگردونه. بعد تو اکتیویتی این جوری اون رو بگیرید:

((YourAdapter)lv.getAdapter()).getVerse(position);