بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

امکان کپی متن

مدیریت گفتگو
Morteza 11 سال پیش
آخرین تغییر: 11 سال پیش

توی برنامه یه متنی قرار دادم میخوام کاربر بتونه با چند ثانیه نگه داشتن روی متن یه    اون متنو کپی کنه چه جور باید اینکارو بکنمن

نظرات

پاسخ‌ها 4

Hossein Lamei Ramandi 11 سال پیش

یه سرچی تو استک میزدی پیدا میکردی

 ClipboardManager clipboard =(ClipboardManager) getSystemService(CLIPBOARD_SERVICE);ClipData clip =ClipData.newPlainText("label","Text to copy");
clipboard.setPrimaryClip(clip);

نظرات

Morteza 11 سال پیش

این کدو کجا بزارم؟؟؟

نظرات

Hossein Lamei Ramandi 11 سال پیش
یه توضیح بده میخوای چی کار کنی تا بگم کجا بزاری
Morteza 11 سال پیش
میخوام تو فایل xml یه متنیو بزارم که قابلیت کپی داشته باشه
Morteza 11 سال پیش
اینو باید توفایل جاوا بزارم ؟ اگه بزارم برای همه xml ها این ویژگی ایجاد میشه
BrotherV 11 سال پیش
آقا مرتضی من به طور کامل پایین نوشتم. متن تکست در xml برای تکت ویو ست میشه پس باید مقدار String را برگردونید. کد زیر جواب کامل راه حل شماست.
Morteza 11 سال پیش
ینی من تقریبا چهلو خورده ای تکست ویو دارم برای هر کدم باید یه بار این کدو بنویسیم
BrotherV 11 سال پیش
نه اصلا نیازی به این کار نیست. پاسخ قبلی را برای جواب به این سوالتون ویرایش میکنم.
Morteza 11 سال پیش
تشکر فهمیدم
BrotherV 11 سال پیش

برای حل این موضوع باید از اینترفیس 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; } }

نظرات

Morteza 11 سال پیش

اینو کجا بزام، من چند تا xml دارم که توش تکست ویو داره ، از این کد استفاده کنم قابلیت کپی برای همه xmlها یجاد میشه؟

نظرات


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .