2016-08-03 2 views
0

Je souhaite que l'utilisateur puisse partager le message lorsque le FAB est cliqué. mais que dois-je placer sendIntent.putExtra(Intent.EXTRA_TEXT, /* what should I put here*/); ici? J'ai essayé message mais cela ne fonctionne pas.Entrée de texte de l'intention de partage

public class NoteDetailFragment extends Fragment { 


public NoteDetailFragment() { 
    // Required empty public constructor 
} 


@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 

    View fragmentLayout = inflater.inflate(R.layout.fragment_note_detail, container, false); 

    FloatingActionButton fab = (FloatingActionButton)fragmentLayout.findViewById(R.id.fab); 
    fab.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Intent sendIntent = new Intent(); 
      sendIntent.setAction(Intent.ACTION_SEND); 
      sendIntent.putExtra(Intent.EXTRA_TEXT, /* what should I put here*/); 
      sendIntent.setType("text/plain"); 
      startActivity(sendIntent); 
     } 
    }); 

    TextView title = (TextView)fragmentLayout.findViewById(R.id.viewNoteTitle); 
    TextView message = (TextView)fragmentLayout.findViewById(R.id.viewNoteMessage); 
    TextView thoughts = (TextView)fragmentLayout.findViewById(R.id.viewNoteThoughts); 
    ImageView icon = (ImageView)fragmentLayout.findViewById(R.id.viewNoteIcon); 

    Intent intent = getActivity().getIntent(); 

    title.setText(intent.getExtras().getString(MainActivity.NOTE_TITLE_EXTRA)); 
    message.setText(intent.getExtras().getString(MainActivity.NOTE_MESSAGE_EXTRA)); 
    thoughts.setText(intent.getExtras().getString(MainActivity.NOTE_THOUGHTS_EXTRA)); 

    Note.Category noteCat = (Note.Category)intent.getSerializableExtra(MainActivity.NOTE_CATEGORY_EXTRA); 
    icon.setImageResource(Note.categoryToDrawable(noteCat)); 


    return fragmentLayout; 
} 

} 
+0

Vous devez passer dans un 'CHAINE', en texte clair, qui représente ce que vous voulez envoyer. Vous devez décider par vous-même d'où provient cette chaîne, car vous êtes le seul à savoir quel texte vous voulez partager ici. – CommonsWare

+0

oh donc il est vraiment impossible d'envoyer un texte que l'utilisateur a tapé? – Kimochis

+0

Non, c'est très possible. Cependant, nous ne savons pas où l'utilisateur entre ce texte. Votre code source ne montre pas les signes d'un 'EditText', par exemple. – CommonsWare

Répondre

0

intention.putExtra a deux entrées. Le premier est une clé identifiant la chaîne. La seconde est la chaîne de message.

Voici un exemple de la Tutorial:

public class MainActivity extends AppCompatActivity { 
    public final static String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE"; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 

    /** Called when the user clicks the Send button */ 
    public void sendMessage(View view) { 
     Intent intent = new Intent(this, DisplayMessageActivity.class); 
     EditText editText = (EditText) findViewById(R.id.edit_message); 
     String message = editText.getText().toString(); 
     intent.putExtra(EXTRA_MESSAGE, message); 
     startActivity(intent); 
    } 
}