آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

قابلیت انتخاب متن از TextView

MOJTABA  10 سال پیش  10 سال پیش
+3 0

به نام خدا

چه جوری میشه قابلیت انتخاب متنی که در 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);
+1 0
آقا مهران دست شما درد نکنه اما یه مشکل هنوز حل نشده: انتخاب قسمتی از متن TextView (10 سال پیش)
پاسخ به سوال 
MOJTABA  10 سال پیش
+1 0

select textview

طبق تصویر می خوام بتونم متن داخل TextView رو انتخاب کنم

+1 0
فکر نکنم بشه با تکست ویو همچین کاری کرد ولی با editText این کار امکان پذیره که به کاربر اجازه ندی تغییری تو متن ایجاد کنه ولی میتونه قسمتی از متنو انتخاب کنه (10 سال پیش)
پاسخ به سوال 
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=""/>
+1 0
من این چیزی رو که گفته بودین رو امتحان کردم و از شما ممنونم اما یه سوال دیگه چه جوری میشه دکمه اشتراک رو به گزینه های Text Selection اضافه کرد برای من روی Genymotion با انتخاب متن فقط دکمه کپی و Select All اومد (10 سال پیش)
پاسخ به سوال 
پیام  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) {
}
}

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