یه توضیح بده میخوای چی کار کنی تا بگم کجا بزاری
بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ
امکان کپی متن
مدیریت گفتگو
آخرین تغییر: 11 سال پیش
توی برنامه یه متنی قرار دادم میخوام کاربر بتونه با چند ثانیه نگه داشتن روی متن یه اون متنو کپی کنه چه جور باید اینکارو بکنمن
پاسخها 4
یه سرچی تو استک میزدی پیدا میکردی
ClipboardManager clipboard =(ClipboardManager) getSystemService(CLIPBOARD_SERVICE);ClipData clip =ClipData.newPlainText("label","Text to copy");
clipboard.setPrimaryClip(clip);
نظرات
این کدو کجا بزارم؟؟؟
نظرات
میخوام تو فایل xml یه متنیو بزارم که قابلیت کپی داشته باشه
اینو باید توفایل جاوا بزارم ؟ اگه بزارم برای همه xml ها این ویژگی ایجاد میشه
آقا مرتضی من به طور کامل پایین نوشتم. متن تکست در xml برای تکت ویو ست میشه پس باید مقدار String را برگردونید. کد زیر جواب کامل راه حل شماست.
ینی من تقریبا چهلو خورده ای تکست ویو دارم برای هر کدم باید یه بار این کدو بنویسیم
نه اصلا نیازی به این کار نیست. پاسخ قبلی را برای جواب به این سوالتون ویرایش میکنم.
تشکر فهمیدم
برای حل این موضوع باید از اینترفیس onLongClickListener استفاده کنیم و اون را برای تکست Override کنیم. کد زیر برای این کار میتونید استفاده کنید.
final TextView txt = (TextView) findViewById(R.id.textView1);
txt.setLongClickable(true);
txt.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View arg0) {
ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
ClipData clip = ClipData.newPlainText("label", txt.getText()
.toString());
clipboard.setPrimaryClip(clip);
Toast.makeText(ActivityMain.this, "متن مورد نظر در کلیپورد ذخیره شد.",
Toast.LENGTH_SHORT).show();
return true;
}
});
حالا اگر چندین تکست ویو دارید مثلا 100 تا برای همین به صورت زیر عمل میکنیم.
public class ActivityMain extends Activity implements OnLongClickListener{
private static final int[] textViewIdArray={R.id.txt1, ...,R.id.txt100};
private TextView[] txt = new TextView[textViewIdArray.length];
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.ac_main);
for(int i=0;i<textViewIdArray.length;i++){
txt[i] = (TextView)findViewById(textViewIdArray[i]);
txt[i].setOnLongClickListener(this);
}
.
.
.
}
@Override
public boolean onLongClick(View arg0) {
ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
ClipData clip = ClipData.newPlainText("label", txt.getText()
.toString());
clipboard.setPrimaryClip(clip);
Toast.makeText(ActivityMain.this, "متن مورد نظر در کلیپورد ذخیره شد.",
Toast.LENGTH_SHORT).show();
return true;
}
}
نظرات
اینو کجا بزام، من چند تا xml دارم که توش تکست ویو داره ، از این کد استفاده کنم قابلیت کپی برای همه xmlها یجاد میشه؟
نظرات
تو اکتیویتی دیگه
تشکر
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .
ویرایش
پیام
نظرات