18

メソッドtextviewを使用できるようにレイアウトを設定しようとしています。getEllipsisCount()ただし、以下のコードはレイアウト値として null を返します。getEllipsisCount(0)レイアウトを取得してメソッドを使用するにはどうすればよいですか。

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        TextView mytextview =(TextView) findViewById(R.id.textView1);
        mytextview.setText(myText);
    
        Layout layout = mytextview.getLayout();
        if(layout != null){
            mytextview.setText("very good layout worked\n");
        }
    }
}
4

6 に答える 6

5

ドキュメントから:

public final Layout getLayout ()

API レベル 1 で追加されました。テキストを表示するために現在使用されているレイアウトを返します。テキストまたは幅が最近変更された場合、これは null になる可能性があります。

したがって、おそらくテキストに変更があるか、それを呼び出すのが早すぎます。

が記載されているこの回答を見てください

これは、レイアウト フェーズの後でのみ機能します。それ以外の場合、返されるレイアウトは null になるため、コード内の適切な場所でこれを呼び出します。

于 2013-05-15T07:50:40.397 に答える
0

コールmytextview.getLayout()インonStartまたはonResumeコールバックします。

于 2013-05-15T07:39:49.310 に答える