发送字符串数据从活动到片段

问题描述:

你好,我想发送一个字符串从活动(MainActivity.java)到片段(Tozihat.java)并设置为一个TextView,但它会给出错误。 我已查看其他主题,但找不到解决方案。发送字符串数据从活动到片段

代码数据库了Methode我写的id + 1,因为从ListView中的第一项位置为0,但第一个ID为1:从我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); 

     } 
    }); 

代码

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; 
} 

代码从我的片段(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; 

} 

请帮帮我!

+0

显示您的logcat – SripadRaj

+0

请告诉我你MainActivity代码?你为什么同时调用'startActivity'和''commit'?你能解释一下吗? – Sanoop

+0

你的问题是你把片段放在活动中,同时开始新的活动。尚未在MainActivity中处理的Tozihat片段。这里是逻辑异常 –

添加以下代码列表视图itemClick在听者里面活动:

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

内,您的片段:

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

它是错误的... – Reza4000

+0

plse检查编辑的代码 –

+0

谢谢,但它是强制停止! – Reza4000