Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.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 更改TextView的文本无效_Android_Textview_Android Viewpager_Onactivityresult - Fatal编程技术网

Android 更改TextView的文本无效

Android 更改TextView的文本无效,android,textview,android-viewpager,onactivityresult,Android,Textview,Android Viewpager,Onactivityresult,我想更改onActivityResult方法中TextView的文本。它似乎设置正确,但我无法在视图中看到它 TextView位于ViewPager的第三个片段中 这是我的代码: public class TabsFacturasActivity extends SherlockFragmentActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCre

我想更改
onActivityResult
方法中
TextView
的文本。它似乎设置正确,但我无法在
视图中看到它

TextView
位于
ViewPager
的第三个
片段中

这是我的代码

public class TabsFacturasActivity extends SherlockFragmentActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fragment_pager);
        //...
        mAdapter = new MyAdapter(getSupportFragmentManager());

        mPager = (ViewPager)findViewById(R.id.pager);
        mPager.setAdapter(mAdapter);
       //...
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        switch (requestCode) {
            case FILE_SELECT_CODE:
            if (resultCode == RESULT_OK) {
                adjunto = true;
                // Get the Uri of the selected file 
                Uri uri = data.getData();
                // Get the path
                String path = "";
                try {
                    path = MyUtility.getPath(this, uri);
                } catch (URISyntaxException e) {
                    myApplication.throwException(this);
                    e.printStackTrace();
                }
                String imgName = path.split("/")[path.split("/").length-1];
                LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                View view = inflater.inflate(R.layout.activity_lectura, null, false);
                textViewImg = (TextView) view.findViewById(R.id.textViewUrlImgLectura);
                System.out.println("text view before: "+textViewImg.getText()); //It returns correct value "..."
                textViewImg.setText(imgName);
                textViewImg.invalidate(); //It does nothing
                System.out.println("text view after: "+textViewImg.getText()); //It returns correct value with image path
                filePath = path;
            }
            break;
        }
        super.onActivityResult(requestCode, resultCode, data);
    }

    private static class MyAdapter extends FragmentPagerAdapter {

        private String[] titles = { "VER FACTURAS", "VER CONSUMO", "INTRODUCIR LECTURA" };

        public MyAdapter(FragmentManager fragmentManager) {
            super(fragmentManager);
        }

        @Override
        public CharSequence getPageTitle(int position) {
            return titles[position];
        }

        @Override
        public Fragment getItem(int position) {
            switch (position) {
            case 0: // Fragment # 0
                return new FacturasActivity();
            case 1: // Fragment # 1
                return new ConsumoActivity();
            case 2:// Fragment # 2
                return new LecturaActivity(); //TextView is here
            }
            return null;
        }

        @Override
        public int getCount() {
            return titles.length;
        }

    }
}

如您所见,我尝试过使用
使无效
,但它没有任何作用。如何解决这个问题?

试试
textViewImg.requestLayout()

您的片段可能有问题。可能在您可能已加载的另一个片段中有另一个具有相同id的textview,并且正在设置文本。尝试打印textview ID的值

我已经解决了这个问题:

我在这里获得我的
片段的实例和访问方法:

LecturaActivity lecturaFragment = (LecturaActivity) 
                        getSupportFragmentManager().findFragmentByTag(
                           "android:switcher:"+R.id.pager+":"+2);
lecturaFragment.changeImgText(imgName);

我在
textViewImg.setText(imgName)
之后设置了它,但它不起任何作用。您确定代码正在执行吗?你试过调试它吗?你在片段视图中添加了
视图
?我已经更新了我的问题
TextView
位于第三个
Fragment
(讲师活动)。您正在膨胀一个新的
活动\u讲师a
,但您没有将其添加到片段的视图中我该如何添加它?这将解决您的问题他正在膨胀一个新的
活动\u讲师a
…并且从不将其添加到片段的视图中我猜,此处使用的寻呼机适配器正在向主活动加载多个页面/片段。