بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
قابلیت انتخاب متن از TextView
به نام خدا
چه جوری میشه قابلیت انتخاب متنی که در TextView وجود داره رو به کاربر داد و مثلا متن انتخاب شده رو کپی کرد یا به اشتراک گذاشت؟
0
0
کسی نمیدونه؟ (10 سال پیش)
برای این سوال 5 پاسخ وجود دارد.
مشاهده پاسخ صحیح
پاسخ به سوال
sun.of.god.7
10 سال پیش
+1
0
سلام برای اشتراک از کد زیر استفاده کن
Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
shareIntent.setType("text/plain");
shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, txt.getText().toString());//اینجا از تکست ویو خودت استفاده کن
Intent new_intent = Intent.createChooser(shareIntent, "Share via");
new_intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
G.context.startActivity(new_intent);
//برای کپی هم از این کدClipboardManager clipboard =(ClipboardManager) getSystemService(CLIPBOARD_SERVICE);ClipData clip =ClipData.newPlainText(label, text); clipboard.setPrimaryClip(clip);
پاسخ به سوال
MOJTABA
10 سال پیش
+1
0
دوستان این قابلیت رو توی این اپ دیدم و برام سوال شد که این قابلیت مربوط به متریال دیزاین هست یا نه

پاسخ به سوال
پیام
10 سال پیش
+3
0
از API 11 به بعد میتونی از این روش استفاده کنی.
<TextView
android:id="@+id/textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textIsSelectable="true"
android:text=""/>
پاسخ به سوال
پیام
10 سال پیش
+3
0
پاسخ صحیح
برای این کار شما باید خودتون یک منوی کاستوم درست کنید و دکمه Share رو به اون اضافه کنید.
<?xml version="1.0" encoding="utf-8"?>
<menuxmlns:android="http://schemas.android.com/apk/res/android"><itemandroid:id="@+id/action_share"
android:title="@string/share"
app:showAsAction="ifRoom"
app:actionProviderClass="android.support.v7.widget.ShareActionProvider"/>
</menu>
و بعد باید یک ActionMode جدید رو که خودتون بر اساس گزینه هایی که میخواد بسازید رو به تکست خودتون اضافه می کنید.
bodyView.setCustomSelectionActionModeCallback(new MyCallback());
اینم نمونه ی یک کلاس ActionMode
class MyCallback implements ActionMode.Callback {
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
Log.d(TAG, "onCreateActionMode");
MenuInflater inflater = mode.getMenuInflater();
inflater.inflate(R.menu.style, menu);
return true;
}
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
return false;
}
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
Log.d(TAG, String.format("onActionItemClicked item=%s/%d", item.toString(), item.getItemId()));
CharacterStyle cs;
int start = bodyView.getSelectionStart();
intend = bodyView.getSelectionEnd();
SpannableStringBuilder ssb = newSpannableStringBuilder(bodyView.getText());
switch (item.getItemId()) {
case R.id.action_share:
//add code for action share provider
return true;
}
return false;
}
public void onDestroyActionMode(ActionMode mode) {
}
}
publicvoid onDestroyActionMode(ActionMode mode) {
}
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .
