2013-12-12 53 views
0

嗨即时尝试开发和应用程序需要发送文本从一个编辑文本框到另一个应用程序,如Kik,我已经使共享菜单,我只需要使它从我的编辑文本框发送文本如何将文本从编辑文本框发送到其他应用程序?

我的继承人份额菜单代码(XML):

<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:id="@+id/menu_share" 
     android:title="Share" 
     android:orderInCategory="100" 
     android:showAsAction="ifRoom" 
     android:actionProviderClass= "android.widget.ShareActionProvider" /> 

</menu> 

而且继承人我的java:

package com.example.Encryptor_Kik; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuInflater; 
import android.view.MenuItem; 
import android.widget.ShareActionProvider; 

/** 
* Created with IntelliJ IDEA. 
* Date: 12/12/13 
* Time: 3:15 PM 
* To change this template use File | Settings | File Templates. 
*/ 
public class Decryptor extends Activity { 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.decryption); 
} 
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater menuInflater = getMenuInflater(); 
    menuInflater.inflate(R.menu.menu2, menu); 
    MenuItem shareItem = menu.findItem(R.id.menu_share); 

    ShareActionProvider mShare = (ShareActionProvider)shareItem.getActionProvider(); 
    Intent shareIntent = new Intent(Intent.ACTION_SEND); 
    shareIntent.setAction(Intent.ACTION_SEND); 
    shareIntent.setType("text/plain"); 
    shareIntent.putExtra(Intent.EXTRA_TEXT, "Hi"); 
    mShare.setShareIntent(shareIntent); 


    return super.onCreateOptionsMenu(menu); 
} 




} 

回答

0

的问题是,你的代码是在onCreateOptionsMenu和创造它的EditText的时间是空的,所以text是空的。您需要添加一个侦听器来更改文本。这里是全代码 -

public class Decryptor extends Activity { 
EditText e; 
private ShareActionProvider mShare; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.decryption); 
    e=(EditText)findViewById(R.id.YourID); 
    e.addTextChangedListener(commonTextWatcher); 


    TextWatcher commonTextWatcher 
    = new TextWatcher(){ 

    @Override 
    public void afterTextChanged(Editable s) { 
    String text=e.getText.toString(); 
    Intent shareIntent = new Intent(Intent.ACTION_SEND); 
    shareIntent.setAction(Intent.ACTION_SEND); 
    shareIntent.setType("text/plain"); 
    shareIntent.putExtra(Intent.EXTRA_TEXT, text); 
    if (mShare != null) { 
    mShare.setShareIntent(shareIntent); 
    } 
    } 

    @Override 
    public void beforeTextChanged(CharSequence s, int start, int count, 
    int after) { 
    // TODO Auto-generated method stub 

    } 

    @Override 
    public void onTextChanged(CharSequence s, int start, int before, 
    int count) { 
    // TODO Auto-generated method stub 

    }}; 
} 
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater menuInflater = getMenuInflater(); 
    menuInflater.inflate(R.menu.menu2, menu); 
    MenuItem shareItem = menu.findItem(R.id.menu_share); 
    String text=e.getText.toString(); 
    mShare = (ShareActionProvider)shareItem.getActionProvider(); 
    Intent shareIntent = new Intent(Intent.ACTION_SEND); 
    shareIntent.setAction(Intent.ACTION_SEND); 
    shareIntent.setType("text/plain"); 
    shareIntent.putExtra(Intent.EXTRA_TEXT, text); 
    mShare.setShareIntent(shareIntent); 


    return super.onCreateOptionsMenu(menu); 
} 
} 
+0

我照你说没有任何错误,但它没有“分享”从它 –

+0

文本@LochlanKennedy显示的代码。你怎么实现我说的? – Naddy

+0

看看编辑。 – Naddy

相关问题