我想制作一个简单的分享按钮来获取TextView值并分享它,但我不知道该怎么做。
以下是代码:
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 :(得分: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);
}
});