Android 未在编辑文本控件中输入文本

Android 未在编辑文本控件中输入文本,android,Android,当我试图创建选项卡控件并在Android中添加编辑文本,然后在Tab1中的UI中输入任何字符进行编辑文本时,文本不会被输入到编辑文本控件中。我正在使用Android Studio 1.1.0。代码如下 主要活动 import android.os.Bundle; import android.support.v4.app.FragmentTabHost; import android.support.v7.app.ActionBar; import android.support.v7.app.

当我试图创建选项卡控件并在Android中添加编辑文本,然后在Tab1中的UI中输入任何字符进行编辑文本时,文本不会被输入到编辑文本控件中。我正在使用Android Studio 1.1.0。代码如下

主要活动

import android.os.Bundle;
import android.support.v4.app.FragmentTabHost;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.Toast;


public class MainActivity extends ActionBarActivity {

    private static final String TAB_1_TAG = "one";
    private static final String TAB_2_TAG = "two";
    private FragmentTabHost mTabHost;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.my_tabs);

        mTabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);
        mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);

        Bundle b = new Bundle();
        mTabHost.addTab(mTabHost.newTabSpec(TAB_1_TAG).setIndicator("Tab1"), FirstContainerFragment.class, b);

        b.putString("key", "One"); 

        b = new Bundle();
        b.putString("key", "Two");
        mTabHost.addTab(mTabHost.newTabSpec(TAB_2_TAG).setIndicator("Tab2"), SecondContainerFragment.class, b);
    }

    @Override
    public void onBackPressed() {
        boolean isPopFragment = false;
        String currentTabTag = mTabHost.getCurrentTabTag();
        if (currentTabTag.equals(TAB_1_TAG)) {
            isPopFragment = ((BaseContainerFragment)getSupportFragmentManager().findFragmentByTag(TAB_1_TAG)).popFragment();
        } else if (currentTabTag.equals(TAB_2_TAG)) {
                isPopFragment = ((BaseContainerFragment)getSupportFragmentManager().findFragmentByTag(TAB_2_TAG)).popFragment();
        }
        if (!isPopFragment) {
            finish();
        }
    }
}
my_tab.xml

<android.support.v4.app.FragmentTabHost
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/tabhost"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <TabWidget
            android:id="@android:id/tabs"
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="0"/>

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_weight="0"/>

        <FrameLayout
            android:id="@+id/realtabcontent"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"/>

    </LinearLayout>
</android.support.v4.app.FragmentTabHost>
container_fragment.xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/container_framelayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
</FrameLayout>
FirstFragment.java

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;

public class BaseContainerFragment extends Fragment {

    public void replaceFragment(Fragment fragment, boolean addToBackStack) {
        FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
        if (addToBackStack) {
            transaction.addToBackStack(null);
        }
        transaction.replace(R.id.container_framelayout, fragment);
        transaction.commit();
        getChildFragmentManager().executePendingTransactions();
    }

    public boolean popFragment() {
        boolean isPop = false;
        if (getChildFragmentManager().getBackStackEntryCount() > 0) {
            isPop = true;
            getChildFragmentManager().popBackStack();
        }
        return isPop;
    }

}
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class FirstContainerFragment extends BaseContainerFragment {
    private boolean mIsViewInited;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.container_fragment, null);
    }
    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        if (!mIsViewInited) {
            mIsViewInited = true;
            initView();
        }
    }
    private void initView() {
        replaceFragment(new FirstFragment(), false);
    }
}
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class FirstFragment extends Fragment {
    EditText edtTxt;
    TextView txtView;
    Button btnEnter;

    public FirstFragment() {
        // TODO Auto-generated constructor stub
    }
    @Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        View v = LayoutInflater.from(getActivity()).inflate(R.layout.first_layout,null);
        edtTxt =(EditText)v.findViewById(R.id.editText);
        txtView =(TextView)v.findViewById(R.id.textText222);
        btnEnter = (Button)v.findViewById(R.id.button);
        return v;
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onActivityCreated(savedInstanceState);

    btnEnter.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0){
            txtView.setText(edtTxt.getText());
            }
        });
    }
}
类似地,我有下面的类和布局

SecondContainerFragment.java
SecondFragment.java

试试txtView.settextedtxt.getText.toString;事实上,我无法从键盘向编辑文本控件输入任何字符,仍然有问题吗?所以,你不能点击它来输入文本,你没有键盘或其他什么?如果没有,当你点击它时会发生什么?它是崩溃了还是你收到了logcat消息?第一个布局XML在哪里?是的,您答对了。不,它不会崩溃,也不会出现任何消息,只是光标焦点不用于编辑文本。