Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在一个片段上使用listview选定项在另一个片段上显示文本_Android_Listview_Android Fragments_Android Listview - Fatal编程技术网

Android 在一个片段上使用listview选定项在另一个片段上显示文本

Android 在一个片段上使用listview选定项在另一个片段上显示文本,android,listview,android-fragments,android-listview,Android,Listview,Android Fragments,Android Listview,我有两个片段,一个是listview,另一个是textview,我想当一个项目被选中时,它的文本用于在另一个片段的textview上设置文本并显示这个另一个片段 所以我在listview(lv)上设置了一个类似这样的监听器 lv.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0

我有两个片段,一个是listview,另一个是textview,我想当一个项目被选中时,它的文本用于在另一个片段的textview上设置文本并显示这个另一个片段

所以我在listview(lv)上设置了一个类似这样的监听器

lv.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View v1,
                    int pos, long arg3) {



String hh =  lv.getItemAtPosition(pos).toString().toLowerCase();


    int resd = getResources().getIdentifier(hh, "raw", getPackageName());
    InputStream isd = getResources().openRawResource(resd); 
    BufferedReader brd = new BufferedReader(new InputStreamReader(isd));
    String lined; 
    String entireFiled = "";

    try {
        while((lined = brd.readLine()) != null) { 
            entireFiled += (lined + "\n"); 
        }
    }

    catch (Exception e) {
        Toast.makeText(getApplicationContext(),"Error reading file!",Toast.LENGTH_LONG).show();
        e.printStackTrace();
    }

     TextView output1= (TextView) findViewById(R.id.fp);    
    output1.setText(entireFiled);


        Family frag5 = new Family();
        FragmentManager fm = getSupportFragmentManager();       
        FragmentTransaction ft = fm.beginTransaction().replace(R.id.fl, frag5).addToBackStack(null);    
        ft.commit();

            }
        });
lv.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共链接(AdapterView arg0,视图v1,
内部位置,长arg3){
字符串hh=lv.getItemAtPosition(pos.toString().toLowerCase();
int resd=getResources().getIdentifier(hh,“raw”,getPackageName());
InputStream isd=getResources().openRawResource(resd);
BufferedReader brd=新的BufferedReader(新的InputStreamReader(isd));
线纹;
字符串entireFiled=“”;
试一试{
而((lined=brd.readLine())!=null){
entireFiled+=(带下划线的+“\n”);
}
}
捕获(例外e){
Toast.makeText(getApplicationContext(),“读取文件时出错!”,Toast.LENGTH\u LONG.show();
e、 printStackTrace();
}
TextView输出1=(TextView)findViewById(R.id.fp);
output1.setText(entireFiled);
族frag5=新族();
FragmentManager fm=getSupportFragmentManager();
FragmentTransaction ft=fm.beginTransaction().replace(R.id.fl,frag5).addToBackStack(null);
ft.commit();
}
});

另一个片段称为Family,其文本视图为output1。当我运行它时,我在textview行得到null异常。那我该怎么做呢?谢谢

您无法访问其他类似的片段文本视图。要将一个片段与另一个片段进行通信,请尝试使用
处理程序


或者,在您的情况下,您可以尝试使用共享首选项。单击按钮,将数据保存在第一个片段中。当出现族片段时,只需从共享首选项中检索数据,并将其显示在族片段的文本视图中。

您需要使用setArgument

Family frag5 = new Family();
Bundle args = new Bundle();
args.putString("text", entireFiled);
frag5 .setArguments(args);
获取族片段OnCreateView方法中的值

TextView output1= (TextView) findViewById(R.id.fp);  
String text =  getArguments().getString("text", "");
output1.setText(text);

如何使用处理程序?我是新手检查一下我用了答案