저는 Android 앱 (Eclipse에서 Java)을 사용하고 있고 Shift 키를 사용하여 키보드의 일부 버튼 텍스트를 변경하고 싶습니다. 모든 사람들이 비슷한 질문을하는 것처럼 텍스트 뷰 텍스트를 변경 한 것과 동일한 코드를 구현했지만 어떤 이유로 그것이 작동하지 않을 것입니다. 어떤 이유로 다른 버튼 기능을 테스트 한 후에 버튼의 속성을 변경하는 것과 관련하여 나에게별로 좋지 않은 무언가가 있다고 판단했습니다. 프로젝트 청소를 시도했지만 도움이되지 않았습니다. 호출 예외가 계속 발생합니다. 여기에 관련 코드는 다음과 같습니다 아래버튼 속성이 변경되지 않습니다
public class MainActivity extends Activity {
boolean shift = true;
static Vector<String> answer = new Vector<String>(1, 1);
static int ansLength = 0;
private TextView answerbox;
private Button a;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initializeButtons();
setContentView(R.layout.activity_main);
answerbox = (TextView) findViewById(R.id.answerbox);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public void initializeButtons() {
a = (Button) findViewById(R.id.a);
}
public void typeKey(View sender) {
Button pressed = (Button) sender;
answer.add(ansLength, (String) pressed.getText());
//answerbox.setText("test string");
ansLength++;
StringBuilder stringBuilder = new StringBuilder();
for (String string : answer) {
stringBuilder.append(string);
}
answerbox.setText(stringBuilder.toString());
}
public void backSpace(View sender) {
answer.remove(ansLength - 1);
ansLength--;
StringBuilder stringBuilder = new StringBuilder();
for (String string : answer) {
stringBuilder.append(string);
}
answerbox.setText(stringBuilder.toString());
}
public void shift(View sender) {
if (shift == true) {
shift = false;
a.setText("l");
}
}
}
XML :
<Button
android:id="@+id/a"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:text="A"
android:onClick="typeKey"/>
<Button
android:id="@+id/shift1"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="^"
android:textSize="24sp"
android:onClick="shift" />
가지고 속성을 변경 한 후에보기를 무효화합니까? –
AndroidAnnotations http://androidannotations.org/ 사용을 고려하십시오. 보일러 플레이트 코드를 줄이고 초기화 오류를 줄이는 데 좋은 도구입니다. 누락되거나 엉망이 된 경우에도 알려줍니다. – allprog