2016-09-29 6 views
-11

Hallo ich möchte eine Zeichenfolge von Activity (MainActivity.java) an die zu dem Fragment (Tozihat.java) senden und auf eine TextView setzen, aber es gibt einen Fehler. Ich habe andere Themen überprüft, aber ich kann keine Lösung meines Problems finden.senden String-Daten von Aktivität zu Fragment

Code Aus Datenbank Methode schreiben i id + 1, da das erste Element Position von Listview ist 0, aber die erste ID ist 1:

public String Tozihat(int id) { 
    int id2 = id + 1; 
    String query = "SELECT Tozihat FROM tbl_mive WHERE ID ="+id2; 
    SQLiteDatabase db = this.getReadableDatabase(); 
    Cursor cursor = db.rawQuery(query , null); 
    String t; 
    cursor.moveToFirst(); 
    t = cursor.getString(0); 

    return t; 
} 

Code von meinem MainActivity.Java

 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 


      Intent intent = new Intent(MainActivity.this , ClickActivity.class); 

      String t = myDbHelper.Tozihat(position); 
      Bundle bundle=new Bundle(); 
      Tozihat tozihat = new Tozihat(); 
      FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); 
      fragmentTransaction.replace(R.id.textViewTozihat , tozihat, null); 
      bundle.putString("Tozihat", t); 
      tozihat.setArguments(bundle); 
      fragmentTransaction.commit(); 

      startActivity(intent); 

     } 
    }); 

Code von meinem Faragment (Tozihat.java)

public class Tozihat extends Fragment{ 

TextView textViewTozihat; 
DataBaseHelper myDbHelper; 
String Tozihat; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 


} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.fragment_tozihat, container, false); 



    myDbHelper = new DataBaseHelper(getActivity()); 

    textViewTozihat = (TextView) view.findViewById(R.id.textViewTozihat); 

    Tozihat = getArguments().getString("Tozihat"); 

    textViewTozihat.setText(Tozihat); 

    return view; 

} 

bitte helfen Sie mir!

+0

zeigen Sie Ihre logcat – SripadRaj

+0

Was Sie MainActivity-Code ?? Warum rufst du 'startActivity' und .commit' gleichzeitig an? Kannst du das bitte erklären? – Sanoop

+0

Ihr Problem ist, dass Sie Fragment in Aktivität setzen und gleichzeitig neue Aktivität starten. Tozihat-Fragment wurde in MainActivity noch nicht abgewickelt. Hier ist Logik Ausnahme –

Antwort

1

unten Code in Listenansicht itemClick listner in Aktivität hinzufügen:

Tozihat gTozihat = new Tozihat().newInstance("Data"); 
     getSupportFragmentManager().beginTransaction() 
       .replace(R.id.textViewTozihat, gTozihat).commit(); 

In Ihrem Fragment:

private static final String TYPE = "DATA_KEY"; 
public static Tozihat newInstance(String type) { 
     Tozihat fragment = new Tozihat(); 
     Bundle args = new Bundle(); 
     args.putString(TYPE, type); 

     fragment.setArguments(args); 
     return fragment; 
    } 
+0

war es Fehler ... – Reza4000

+0

plse überprüfen Sie den bearbeiteten Code –

+0

Danke, aber es war Kraft zu stoppen !!! – Reza4000

Verwandte Themen