Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.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
Java 如何从其他布局获取text()_Java_Android_Fragment - Fatal编程技术网

Java 如何从其他布局获取text()

Java 如何从其他布局获取text(),java,android,fragment,Java,Android,Fragment,如何从other.xml中getText()AutoCompleteTextView? 我已经尝试了以下代码: //getFragmentOrder LayoutInflater inflater = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); FormDataOrder = inflater.inflate(R.layout.formdata_order_

如何从other.xml中
getText()
AutoCompleteTextView
? 我已经尝试了以下代码:

    //getFragmentOrder
    LayoutInflater inflater = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    FormDataOrder = inflater.inflate(R.layout.formdata_order_content_main, null);

    ti_namapic = (AutoCompleteTextView) FormDataOrder.findViewById(R.id.ti_namapic);

    String a = ti_namapic.getText().toString();
    System.out.println("Value --> "+ a);
如果我在.xml(android:text=“MyText”)中手动设置, 我得到了那个文本,但如果我从设备屏幕输入,我就得不到那个值

编辑:这是我的全部代码

public class FormDataObject extends Fragment {

AutoCompleteTextView ti_desc;
AutoCompleteTextView ti_group;

View v;
Button btn_ok;

/*--------------------------------------*/
View FormDataOrder;

AutoCompleteTextView ti_namapic;

/* =========================================================================================== */
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState)
{
    v = inflater.inflate(R.layout.formdata_object_content_main,container,false);


    addButtonListener();

    return v;
}

/* =========================================================================================== */
public void addButtonListener()
{

    ti_desc = (AutoCompleteTextView) v.findViewById(R.id.ti_desc);
    ti_group = (AutoCompleteTextView) v.findViewById(R.id.ti_group);

    btn_ok = (Button) v.findViewById(R.id.btn_ok);
    btn_ok.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            getValueFromFragmentOrder();

            System.out.println("ti_desc ----> " + ti_desc.getText());
            System.out.println("ti_group ----> " + ti_group.getText());
        }
    });
}

/* =========================================================================================== */
public void getValueFromFragmentOrder()
{
    System.out.println("getComponentFromOthersFragment ----------> RUN");

    //getFragmentOrder
    LayoutInflater inflater = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    FormDataOrder = inflater.inflate(R.layout.formdata_order_content_main, null);

    ti_namapic = (AutoCompleteTextView) FormDataOrder.findViewById(R.id.ti_namapic);

    String a = ti_namapic.getText().toString();

    System.out.println("Value ----------> "+ a);
}
}

“getValueFromFragmentOrder();”无效,值a-->返回null/empty

您正在扩大布局,但没有在任何地方添加该视图。
首先添加视图,然后获取值。它会起作用。

您正在扩大布局,但没有在任何地方添加该视图。
首先添加视图,然后获取值。它会起作用。

实际上,您需要做的是在
btn_ok
事件中或您需要时,在
onClick
上获取文本。现在要做的是在调用
findviewbyd
方法后立即检索该值

这里发生了什么事?

您将只获得在EditText中分配的初始值,并将其存储到变量中,但在用户输入文本后不会存储该值

那你需要做什么?

--修改此项

btn_ok.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        getValueFromFragmentOrder();
        String a = ti_namapic.getText().toString();

        System.out.println("a----> " + a);
    }
});

实际上,您需要做的是在
btn_ok
onClick
事件上或您需要时获取文本。现在要做的是在调用
findviewbyd
方法后立即检索该值

这里发生了什么事?

您将只获得在EditText中分配的初始值,并将其存储到变量中,但在用户输入文本后不会存储该值

那你需要做什么?

--修改此项

btn_ok.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        getValueFromFragmentOrder();
        String a = ti_namapic.getText().toString();

        System.out.println("a----> " + a);
    }
});
试试这个

 View mOrderContent;

 .....

public void getValueFromFragmentOrder()
{
    System.out.println("getComponentFromOthersFragment ----------> RUN");

    //getFragmentOrder
    LayoutInflater inflater = getActivity().getLayoutInflater();
    LinearLayout viewGroup = new LinearLayout(getActivity());
    mOrderContent = inflater.inflate(R.layout.formdata_order_content_main, viewGroup);
    AutoCompleteTextView ti_namapic = (AutoCompleteTextView) mOrderContent.findViewById(R.id.ti_namapic);

    String a = ti_namapic.getText().toString();

    System.out.println("Value ----------> " + a);
}
试试这个

 View mOrderContent;

 .....

public void getValueFromFragmentOrder()
{
    System.out.println("getComponentFromOthersFragment ----------> RUN");

    //getFragmentOrder
    LayoutInflater inflater = getActivity().getLayoutInflater();
    LinearLayout viewGroup = new LinearLayout(getActivity());
    mOrderContent = inflater.inflate(R.layout.formdata_order_content_main, viewGroup);
    AutoCompleteTextView ti_namapic = (AutoCompleteTextView) mOrderContent.findViewById(R.id.ti_namapic);

    String a = ti_namapic.getText().toString();

    System.out.println("Value ----------> " + a);
}

但是如果我从设备屏幕键入/输入,我没有得到该值
哪个操作想要从设备屏幕获取类型/输入的文本?您没有在任何地方添加
FormDataOrder
。您在屏幕上看到的并不是
FormDataOrder
指向类formdata\u order中的@ρ∑ρK文本的内容,我希望在类formdata\u对象中获取该文本。我认为问题在于您有两个
R.id.ti\u namapic
视图的实例。一个正在显示和编辑,另一个未显示,其文本保持不变。您需要获取对正在显示的视图的引用,而不是创建另一个视图。@TommyAndroid您解决了这个问题吗?或者仍然存在一些问题。
但是如果我从设备屏幕键入/输入,我无法获取该值
哪个操作想要从设备屏幕获取类型/输入的文本?您没有在任何地方添加
FormDataOrder
。您在屏幕上看到的并不是
FormDataOrder
指向类formdata\u order中的@ρ∑ρK文本的内容,我希望在类formdata\u对象中获取该文本。我认为问题在于您有两个
R.id.ti\u namapic
视图的实例。一个正在显示和编辑,另一个未显示,其文本保持不变。您需要获取对正在显示的视图的引用,而不是创建另一个视图。@TommyAndroid您解决了这个问题吗?还是有些问题没解决谢谢。。当我在layout.xml>>android:text=“Test”中手动设置时,它就起作用了。但是如果我从设备屏幕输入,我没有得到值..是的。你说得对。如果您希望在运行时获取值,则应要求用户在获取值之前通过对话框在AutoCompleteTextView中输入值。谢谢。。当我在layout.xml>>android:text=“Test”中手动设置时,它就起作用了。但是如果我从设备屏幕输入,我没有得到值..是的。你说得对。如果希望在运行时获取值,则应要求用户在获取值之前通过对话框在AutoCompleteTextView中输入值。