我为android编写了一个程序,但遇到了问题。我也使用导航器抽屉和我的应用程序中的片段。我在合作伙伴中发现了很多信息,但没有找到想要的东西。
我想在我的应用程序中创建一个自定义键盘。
我做到了
<LinearLayout
android:visibility="gone"
android:id="@+id/keyBoard"
android:layout_width="match_parent"
android:layout_height="200dp"
android:gravity="bottom"
android:layout_gravity="bottom"
android:background="@color/colorPrimary"
android:orientation="vertical">
<LinearLayout
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="45dp"
android:orientation="horizontal">
<Button
android:textAllCaps="false"
android:id="@+id/graphE"
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_weight="1"
android:text="@string/key_e"/>
<Button
android:textAllCaps="false"
android:id="@+id/graphPi"
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_weight="1"
android:text="@string/key_pi"/>
<Button
android:id="@+id/graphLeftBracket"
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_weight="1"
android:text="@string/key_bracket_left"/>
<Button
android:id="@+id/graphRightBracket"
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_weight="1"
android:text="@string/key_bracket_right"/>
<Button
android:id="@+id/graphLeftSquareBracket"
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_weight="1"
android:text="@string/key_bracket_square_left"/>
<Button
android:id="@+id/graphRightSquareBracket"
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_weight="1"
android:text="@string/key_bracket_square_right"/>
<Button
android:id="@+id/graphDegree"
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_weight="1"
android:text="@string/key_degree"/>
<Button
android:id="@+id/graphDelete"
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_weight="1"
android:layout_gravity="center_horizontal"
android:drawableBottom="@drawable/ic_clear"/>
</LinearLayout>
<LinearLayout
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="45dp"
android:orientation="horizontal">
<Button
android:textAllCaps="false"
android:id="@+id/graphAcos"
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_weight="2"
android:text="@string/key_acos"/>
<Button
android:textAllCaps="false"
android:id="@+id/graphCos"
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_weight="1"
android:text="@string/key_cos"/>
<Button
android:id="@+id/graphX"
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_weight="1"
android:text="@string/button_x"/>
<Button
android:id="@+id/graphOne"
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_weight="1"
android:text="@string/key_one"/>
<Button
android:id="@+id/graphTwo"
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_weight="1"
android:text="@string/key_two"/>
<Button
android:id="@+id/graphThree"
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_weight="1"
android:text="@string/key_three"/>
<Button
android:id="@+id/graphMultiply"
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_weight="1"
android:layout_gravity="center_horizontal"
android:drawableBottom="@drawable/ic_multiply"/>
</LinearLayout>
<LinearLayout
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="45dp"
android:orientation="horizontal">
<Button
android:textAllCaps="false"
android:id="@+id/graphAtan"
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_weight="2"
android:text="@string/key_atan"/>
<Button
android:textAllCaps="false"
android:id="@+id/graphTan"
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_weight="1"
android:text="@string/key_tan"/>
<Button
android:id="@+id/graphY"
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_weight="1"
android:text="@string/button_y"/>
<Button
android:id="@+id/graphFour"
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_weight="1"
android:text="@string/key_four"/>
<Button
android:id="@+id/graphFive"
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_weight="1"
android:text="@string/key_five"/>
<Button
android:id="@+id/graphSix"
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_weight="1"
android:text="@string/key_six"/>
<Button
android:id="@+id/graphSum"
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_weight="1"
android:layout_gravity="center_horizontal"
android:drawableBottom="@drawable/ic_add"/>
</LinearLayout>
<LinearLayout
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="45dp"
android:orientation="horizontal">
<Button
android:textAllCaps="false"
android:id="@+id/graphAsin"
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_weight="2"
android:text="@string/key_asin"/>
<Button
android:textAllCaps="false"
android:id="@+id/graphSin"
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_weight="1"
android:text="@string/key_sin"/>
<Button
android:id="@+id/graphModule"
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_weight="1"
android:text="@string/key_module"/>
<Button
android:id="@+id/graphSeven"
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_weight="1"
android:text="@string/key_seven"/>
<Button
android:id="@+id/graphEight"
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_weight="1"
android:text="@string/key_eight"/>
<Button
android:id="@+id/graphNine"
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_weight="1"
android:text="@string/key_nine"/>
<Button
android:id="@+id/graphMinus"
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_weight="1"
android:layout_gravity="center_horizontal"
android:drawableBottom="@drawable/ic_minus"/>
</LinearLayout>
<LinearLayout
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="45dp"
android:orientation="horizontal">
<Button
android:textAllCaps="false"
android:id="@+id/graphAcot"
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_weight="2"
android:text="@string/key_acot"/>
<Button
android:textAllCaps="false"
android:id="@+id/graphCot"
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_weight="1"
android:text="@string/key_cot"/>
<Button
android:textAllCaps="false"
android:id="@+id/graphLn"
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_weight="1"
android:text="@string/key_ln"/>
<Button
android:textAllCaps="false"
android:id="@+id/graphLog"
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_weight="1"
android:text="@string/key_log"/>
<Button
android:textAllCaps="false"
android:id="@+id/graphLg"
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_weight="1"
android:text="@string/key_lg"/>
<Button
android:id="@+id/graphZero"
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_weight="1"
android:text="@string/key_zero"/>
<Button
android:id="@+id/graphDivizion"
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_weight="1"
android:text="@string/divizion"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="5dp">
</LinearLayout>
</LinearLayout>
我在程序内制作了一个数学键盘。 比起editText,我将在键盘上添加文本
<TableLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TableRow>
<Button
android:theme="@style/Widget.AppCompat.Button.Colored"
android:layout_weight="1"
android:gravity="center"
android:id="@+id/buttonClick"
android:layout_width="10dp"
android:layout_height="45dp"
android:text="@string/Calc"/>
<EditText
android:layout_weight="1"
android:id="@+id/editGraphText"
android:layout_width="200dp"
android:layout_height="45dp"
android:inputType="textPersonName"
android:text=""/>
<Button
android:id="@+id/buttonClear"
android:layout_width="45dp"
android:layout_height="45dp"
android:gravity="center"
android:text="@string/Clear" />
</TableRow>
</TableLayout>
然后我需要隐藏键盘并再次打开。
当我隐藏键盘并再次打开它时,我的代码不起作用。
我检查了按钮。按钮有效,但editText不变。
这是关于Java的代码
keyBoard = (LinearLayout) view.findViewById(R.id.keyBoard);
editText = (EditText) view.findViewById(R.id.editGraphText);
editText.setInputType(InputType.TYPE_NULL);
buttonSin = (Button) view.findViewById(R.id.graphSin);
buttonCos = (Button) view.findViewById(R.id.graphCos);
buttonTan = (Button) view.findViewById(R.id.graphTan);
buttonCot = (Button) view.findViewById(R.id.graphCot);
buttonAsin = (Button) view.findViewById(R.id.graphAsin);
buttonAcos = (Button) view.findViewById(R.id.graphAcos);
buttonAcot = (Button) view.findViewById(R.id.graphAcot);
buttonAtan = (Button) view.findViewById(R.id.graphAtan);
buttonMultiply = (Button) view.findViewById(R.id.graphMultiply);
buttonSum = (Button) view.findViewById(R.id.graphSum);
buttonDegree = (Button) view.findViewById(R.id.graphDegree);
buttonMinus = (Button) view.findViewById(R.id.graphMinus);
buttonDivizion = (Button) view.findViewById(R.id.graphDivizion);
buttonLog = (Button) view.findViewById(R.id.graphLog);
buttonLg = (Button) view.findViewById(R.id.graphLg);
buttonPi = (Button) view.findViewById(R.id.graphPi);
buttonE = (Button) view.findViewById(R.id.graphE);
buttonLeftBracket = (Button) view.findViewById(R.id.graphLeftBracket);
buttonLeftSquareBracket = (Button) view.findViewById(R.id.graphLeftSquareBracket);
buttonRightSquareBracket = (Button) view.findViewById(R.id.graphRightSquareBracket);
buttonRightBracket = (Button) view.findViewById(R.id.graphRightBracket);
buttonOne = (Button) view.findViewById(R.id.graphOne);
buttonTwo = (Button) view.findViewById(R.id.graphTwo);
buttonThree = (Button) view.findViewById(R.id.graphThree);
buttonFour = (Button) view.findViewById(R.id.graphFour);
buttonFive = (Button) view.findViewById(R.id.graphFive);
buttonSix = (Button) view.findViewById(R.id.graphSix);
buttonSeven = (Button) view.findViewById(R.id.graphSeven);
buttonEight = (Button) view.findViewById(R.id.graphEight);
buttonNine = (Button) view.findViewById(R.id.graphNine);
buttonZero = (Button) view.findViewById(R.id.graphZero);
buttonModule = (Button) view.findViewById(R.id.graphModule);
buttonX = (Button) view.findViewById(R.id.graphX);
buttonY = (Button) view.findViewById(R.id.graphY);
buttonLn = (Button) view.findViewById(R.id.graphLn);
buttonClear = (Button) view.findViewById(R.id.graphDelete);
editText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
keyBoard.setVisibility(View.VISIBLE);
}
});
buttonSin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finalText += "sin(";
editText.setText(finalText);
}
});
buttonCos.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finalText += "cos(";
editText.setText(finalText);
}
});
buttonTan.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finalText += "tan(";
editText.setText(finalText);
}
});
buttonCot.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finalText += "cot(";
editText.setText(finalText);
}
});
当我想隐藏键盘时,我会在活动中使用它
@Override
public void onBackPressed() {
LinearLayout keyBoard = (LinearLayout) findViewById(R.id.keyBoard);
if (keyBoard.getVisibility() == View.INVISIBLE) {
Fragment fragment = null;
Class fragmentClass = null;
fragmentClass = GraphActivity.class;
try {
fragment = (Fragment) fragmentClass.newInstance();
} catch (Exception e) {
e.printStackTrace();
}
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction().replace(R.id.container, fragment).commit();
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
} else {
keyBoard.setVisibility(View.INVISIBLE);
}
}
代码中的其他clickListener,这是代码的一部分,我没有复制每个clickListener。
我怎样才能使我的代码工作?
我需要隐藏键盘,然后再次打开它,但是它不起作用。
我的错误在哪里?