0

私の問題は、TEXTVIEW(入力テキスト)の幅を変更したいということです。エミュレーターでは、そのコードは正常に機能しますが、モバイルでアプリを操作しようとするとクラッシュします。

私の答えは次のとおりです。.setWidthを変更しようとするとアプリがクラッシュするのはなぜですか?どうすれば問題を解決できますか?

たくさんの感謝。

@Override
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.binomial);

    EditText TextVA, TextVB, TextVC, EtiquetaA, EtiquetaB, EtiquetaC;

    TextVA = (EditText)findViewById(R.id.editTextP);
    TextVB = (EditText)findViewById(R.id.editTextK);
    TextVC = (EditText)findViewById(R.id.editText3);

    ArrayList<TextView> listaTexto = new ArrayList<TextView>();
    listaTexto.add(TextVA);
    listaTexto.add(TextVB);
    listaTexto.add(TextVC);

    Display display = getWindowManager().getDefaultDisplay();
    Point size = new Point();
    display.getSize(size);
    int y = size.y;
    int x = size.x;

    ResolucionPantalla respant = new ResolucionPantalla(y, x);

    for (int i=0;i<listaTexto.size();i++)
            //ResolInput METHOD return size in px according to the screen size
        listaTexto.get(i).setWidth(respant.ResolInput());

    Button BotonCalcular = (Button)findViewById(R.id.buttonCalcular);
    BotonCalcular.setOnClickListener(this);       
}

編集:TextViewからEditTextへ

4

1 に答える 1

1

いくつかの潜在的な問題があります...

手始めに:

TextVA = (TextView)findViewById(R.id.editTextP);

ですか?R.id.editTextP_ EditTextあなたはそれをとしてキャストしていますTextView

そしてまた:

ここに電話setWidthしても効果はありません。onLayout終了後に呼び出されるビューごとにメソッドがありonCreateます。幅/高さは、その呼び出し中にXMLレイアウトで指定されたものに設定されます

独自のメソッドを拡張して作成し、メソッドEditTextをオーバーライドするonLayoutか、XMLを介してビューのサイズを正しく設定する方法を理解することができます。

于 2013-01-18T17:26:06.833 に答える