2016-05-20 2 views
-1

Я хотел бы сделать простую кнопку совместного доступа, чтобы получить значение TextView и поделиться им, но я не знаю, как это сделать.Как получить значение из TextView в Android?

Вот код:

public class DetailActivity extends AppCompatActivity { 

    Button shareBtn ; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_detail); 

     try{ 
      String key = getIntent().getStringExtra("key"); 
      String value = getIntent().getStringExtra("value"); 

      TextView title = (TextView) findViewById(R.id.title); 
      title.setText(key); 

      TextView body = (TextView) findViewById(R.id.body); 
      body.setText(value); 
     } 
     catch(Exception e){ 
      e.printStackTrace(); 
     } 

     final Button button = (Button) findViewById(R.id.shareBtn); 
     button.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 

       mBody = (TextView)findViewById(R.id.txtBody); //<--Problme is here 
       // Perform action on click 
       Intent sendIntent = new Intent(); 
       sendIntent.setAction(Intent.ACTION_SEND); 
       sendIntent.putExtra(Intent.EXTRA_TEXT, mBody); 
       sendIntent.setType("text/plain"); 
       startActivity(sendIntent); 
      } 
     }); 

    }  
} 

И соответствующая раскладка:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior" 
    tools:context="com.naqishop.naqi.DetailActivity" 
    tools:showIn="@layout/activity_detail"> 

    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:text="Title" 
     android:id="@+id/title" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" /> 

    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="txtBody" 
     android:id="@+id/body" 
     android:layout_below="@+id/title" 
     android:layout_marginTop="55dp" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Share this!" 
     android:id="@+id/shareBtn" 
     android:layout_alignParentBottom="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginBottom="76dp" 
     android:onClick="shareThis" 
     /> 


</RelativeLayout> 

Я смотрел на docs и какой-то подобный вопрос здесь, но не мог найти свой ответ. Цените свою помощь об этом. .

+0

= body.getText() ToString(); , тогда сделайте это sendIntent.putExtra (Intent.EXTRA_TEXT, значение); –

+1

change 'sendIntent.putExtra (Intent.EXTRA_TEXT, mBody); 1' to' sendIntent.putExtra (Intent.EXTRA_TEXT, mBody.getText(). ToString()); ' –

+0

@RakshitNawani Я получаю' Не удается разрешить simbole body' ошибка. – Karlom

ответ

1

ли это значение Строка

public class DetailActivity extends AppCompatActivity { 

    Button shareBtn ; 
    TextView title,body; //Globally Declaration 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_detail); 

     try{ 
      String key = getIntent().getStringExtra("key"); 
      String value = getIntent().getStringExtra("value"); 

      title = (TextView) findViewById(R.id.title); 
      title.setText(key); 

      body = (TextView) findViewById(R.id.body); 
      body.setText(value); 
     } 
     catch(Exception e){ 
      e.printStackTrace(); 
     } 

     final Button button = (Button) findViewById(R.id.shareBtn); 
     button.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 

       // Perform action on click 
       Intent sendIntent = new Intent(); 
       sendIntent.setAction(Intent.ACTION_SEND); 
       sendIntent.putExtra(Intent.EXTRA_TEXT, title.getText().toString()); 
       sendIntent.setType("text/plain"); 
       startActivity(sendIntent); 
      } 
     }); 
+0

Это не ошибка –

+0

Спасибо человеку. Работал как шарм! – Karlom

+0

Cool Cheers, Happy Coding –

Смежные вопросы