我有一个看起来像这样的分享按钮
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_item_share:
Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
sharingIntent.setType("text/plain");
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,"Subject here");
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Subtext here");
startActivity(Intent.createChooser(sharingIntent, "Share via"));
return true;
default:
return super.onOptionsItemSelected(item);
}
}
和json对象数组看起来像这样
final JSONObject json = jsonParser.makeHttpRequest(urlAPI + "/" + id + "/", "GET", params1);
final JSONObject data = json.getJSONObject("data");
runOnUiThread(new Runnable() {
@Override
public void run() {
try{
final String titleData = data.getString(TITLE);
final String permalinkData = data.getString(PERMALINK);
}
}
}
有没有办法更改EXTRA_SUBJECT,"Subject here"
和EXTRA_TEXT, "Subtext here"
以获取titleData
和permalinkData
?
这是我的完整java类以防万一
public class Detail extends AppCompatActivity {
String id;
private ProgressDialog progressDialog;
JSONParser jsonParser = new JSONParser();
public static final String TITLE = "title";
public static final String PERMALINK = "permalink";
public static final String EXCERPT = "excerpt";
private static final String urlAPI = "https://api.insertapihere.com";
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.detail_activity);
Intent i = getIntent();
id = i.getStringExtra(ID);
new GetDetail().execute();
}
class GetDetail extends AsyncTask<String, String, String>{
@Override
protected void onPreExecute(){
super.onPreExecute();
//progress dialog here
}
protected String doInBackground(String... params){
try{
List<NameValuePair> params1 = new ArrayList<>();
final JSONObject json = jsonParser.makeHttpRequest(urlAPI + "/" + id + "/", "GET", params1);
final JSONObject data = json.getJSONObject("data");
runOnUiThread(new Runnable() {
@Override
public void run() {
try{
final String titleData = data.getString(TITLE);
final String permalinkData = data.getString(PERMALINK);
final String excerptData = data.getString(EXCERPT);
/**
*share button menu
*/
@Override //annotations are not allowed here
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.detail_menu, menu);
return true;
}
@Override //annotations are not allowed here
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_item_share:
Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
sharingIntent.setType("text/plain");
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,"Subject here");
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, shareBodyText);
startActivity(Intent.createChooser(sharingIntent, "Share via"));
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}
catch (JSONException e){
e.printStackTrace();
}
catch (Exception e){
e.printStackTrace();
}
}
});
}
catch (JSONException e){
e.printStackTrace();
}
return null;
}
protected void onPostExecute(String file_url){
// progressDialog.dismiss();
}
}
}
答案 0 :(得分:0)
public class Detail extends AppCompatActivity {
// TODO changes, variable with global scope
String titleData;
String permalinkData;
String id;
private ProgressDialog progressDialog;
JSONParser jsonParser = new JSONParser();
public static final String TITLE = "title";
public static final String PERMALINK = "permalink";
public static final String EXCERPT = "excerpt";
private static final String urlAPI = "https://api.insertapihere.com";
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.detail_activity);
Intent i = getIntent();
id = i.getStringExtra(ID);
new GetDetail().execute();
}
class GetDetail extends AsyncTask<String, String, String>{
@Override
protected void onPreExecute(){
super.onPreExecute();
//progress dialog here
}
protected String doInBackground(String... params){
try{
List<NameValuePair> params1 = new ArrayList<>();
final JSONObject json = jsonParser.makeHttpRequest(urlAPI + "/" + id + "/", "GET", params1);
final JSONObject data = json.getJSONObject("data");
runOnUiThread(new Runnable() {
@Override
public void run() {
try{
// TODO changes
titleData = data.getString(TITLE);
permalinkData = data.getString(PERMALINK);
final String excerptData = data.getString(EXCERPT);
/**
*share button menu
*/
@Override //annotations are not allowed here
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.detail_menu, menu);
return true;
}
@Override //annotations are not allowed here
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_item_share:
Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
sharingIntent.setType("text/plain");
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,titleData);
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, permalinkData );
startActivity(Intent.createChooser(sharingIntent, "Share via"));
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}
catch (JSONException e){
e.printStackTrace();
}
catch (Exception e){
e.printStackTrace();
}
}
});
}
catch (JSONException e){
e.printStackTrace();
}
return null;
}
protected void onPostExecute(String file_url){
// progressDialog.dismiss();
}
}
}