2014-10-01 4 views
1

이 코드를 사용하여 Intent를 사용하여 데이터를 공유하고 있습니다.android : Intent를 사용하여 서식이 지정된 데이터 공유

SpannableStringBuilder shareBuilder = new SpannableStringBuilder(); 
String input = "Input String"; 
SpannableString greenSpannable= new SpannableString(input); 
greenSpannable.setSpan(new ForegroundColorSpan(Color.parseColor("#678a00")), 0, input.length(), 0); 
greenSpannable.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 0,input.length(), 0); 
shareBuilder.append(greenSpannable); 
Intent shareIntent=new Intent(Intent.ACTION_SEND); 
shareIntent.setType("text/plain"); 
shareIntent.putExtra(Intent.EXTRA_TEXT, shareBuilder.toString()); 
context.startActivity(Intent.createChooser(shareIntent, "Select:")); 

나는 결과에 아무것도 표시를 공유 할 때 당신은 내가 결과를 서식에 대한 SpannableStringBuilderSpannableString를 사용하는 코드에서 볼하지만 수 있듯이. 내가 놓친 게 있니? Intent는 형식이 지정된 문자열 공유를 지원합니까? 예를 들어, 내가 TextView에 shareBuilder 객체를 표시하면, 그것은 내가 기대 한 것을 보여줍니다.

이제
txt.setText(shareBuilder, BufferType.SPANNABLE); 

가, 어떻게 내 의도에 대한 BufferType을 설정할 수 있습니다 내가 setText 방법에 대한 BufferType.SPANNABLE라는 두 번째 매개 변수를 설정해야 텍스트 뷰에 보여주기위한 예를 들면? 또는 형식이 지정된 데이터를 전달하기 위해 내 의도 개체에 대해 설정해야하는 MIME 형식은 무엇입니까?
아이디어가 있으십니까?

답변

2

내가 누락 된 것이 있습니까? 당신은 모든 서식을 제거, 엑스트라에 넣어대로

당신은 SpannableStringBuilderString A를 변환한다.

text/plain 또한 서식이 존재해야한다는 것을 나타내지는 않습니다. 당신이 CharSequence로 직접 엑스트라에 SpannableStringBuilder을 넣을 수 있지만 앱 지원 공유 콘텐츠를 포맷 요구 사항이 없기 때문에

마지막으로, 그것은 여전히 ​​공유 응용 프로그램의 측면에 String로 변환 할 수 있습니다.

또는 형식이 지정된 데이터를 전달하기 위해 내 의도 개체에 대해 설정해야하는 MIME 형식은 무엇입니까?

Spanned 대신 HTML을 생성하고 text/html을 사용할 수 있습니다. 나는 SpannableStringBuilder과 같은 형식 인 실제로는 CharSequence 인 MIME 형식에 대한 규칙을 알고 있지 않습니다.

관련 문제