2016-08-03 16 views
0

Ich möchte den Benutzer die Nachricht teilen können, wenn der FAB geklickt wird. aber was soll ich sendIntent.putExtra(Intent.EXTRA_TEXT, /* what should I put here*/); hier platzieren? Ich versuchte Nachricht, aber es funktioniert nicht.Sharing Intent Texteingabe

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

Sie müssen in einem 'String' passieren, im Klartext, das repräsentiert, was Sie senden möchten. Sie müssen selbst entscheiden, woher diese Zeichenfolge kommt, da Sie als Einziger wissen, welchen Text Sie hier teilen möchten. – CommonsWare

+0

oh es ist wirklich unmöglich, einen Text zu senden, den der Benutzer eingegeben hat? – Kimochis

+0

Nein, das ist sehr gut möglich. Wir wissen jedoch nicht, wo der Benutzer diesen Text eingibt. Ihr Quellcode zeigt beispielsweise keine Zeichen von 'EditText'. – CommonsWare

Antwort

0

intention.putExtra hat zwei Eingänge. Der erste ist ein Schlüssel, der die Zeichenfolge identifiziert. Die zweite ist die Nachrichtenzeichenfolge. Hier

ist ein Beispiel aus der 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); 
    } 
}