Как я перезапускаю Действие Android

Вы можете использовать метод TextRenderer.MeasureText из сборки System.Windows.Forms для построения выходного текста на основе ширины строки вместо количества символов.

Вот метод util:

public static string FillWithSpaces(this string text, int width, Font font)
{
    while (TextRenderer.MeasureText(text, font).Width < width)
    {
        text += ' ';
    }
    return text;
}

И использование:

var font = new Font("Courier New", 10.0F);
var padding = 340;

var latinPresentation1 = "some text ".FillWithSpaces(padding, font) + "| 23";
var latinPresentation2 = "some longer text".FillWithSpaces(padding, font) + "| 23";

var chinesePresentation1 = "一些文字".FillWithSpaces(padding, font) + "| 23";
var chinesePresentation2 = "一些較長的文字".FillWithSpaces(padding, font) + "| 23";

var result = latinPresentation1 + Environment.NewLine +
             latinPresentation2 + Environment.NewLine +
             ".............................................." + Environment.NewLine +
             chinesePresentation1 + Environment.NewLine +
             chinesePresentation2; 

Для решения требуется параметр заполнения (в пикселях) и используемый шрифт.

360
задан N J 26 June 2015 в 08:18
поделиться

3 ответа

Это - способ, которым я делаю это.

        val i = Intent(context!!, MainActivity::class.java)
        i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK)
        startActivity(i)
0
ответ дан 23 November 2019 в 00:15
поделиться

Если вы удалите последнюю строку, вы создадите новое действие act Activity, но ваш старый экземпляр все еще будет жив.

Нужно ли вам перезапускать Activity, например, при изменении ориентации (т.е. ваше состояние сохраняется и передается в onCreate (Bundle) )?

If вы этого не сделаете, одним из возможных обходных путей было бы использование одного дополнительного фиктивного Activity, которое будет запускаться из первого Activity, и какое задание должно запускать новый его экземпляр. Или просто отложите вызов act.finish () после запуска нового.

Если вам нужно сохранить большую часть состояния, вы попадаете в довольно глубокие воды, потому что это не- тривиально передать все свойства вашего состояния, особенно без утечки вашего старого Context / Activity, передав его новому экземпляру.

Пожалуйста, укажите, что вы пытаетесь сделать.

Нужно ли вам перезапускать Activity, например, при изменении ориентации (т.е. ваше состояние сохраняется и передается в onCreate (Bundle) )?

Если вы этого не сделаете, одно из возможных решений: использовать одно дополнительное фиктивное действие, которое будет запускаться из первого действия, и какое задание должно запускать новый его экземпляр. Или просто отложите вызов act.finish () после запуска нового.

Если вам нужно сохранить большую часть состояния, вы попадаете в довольно глубокие воды, потому что это не- тривиально передать все свойства вашего состояния, особенно без утечки вашего старого Context / Activity, передав его в новый экземпляр.

Пожалуйста, укажите, что вы пытаетесь сделать.

Нужно ли вам перезапускать Activity, например, при изменении ориентации (т.е. ваше состояние сохраняется и передается в onCreate (Bundle) )?

Если вы этого не сделаете, одно из возможных решений: использовать одно дополнительное фиктивное действие, которое будет запускаться из первого действия, и какое задание должно запускать новый его экземпляр. Или просто отложите вызов act.finish () после запуска нового.

Если вам нужно сохранить большую часть состояния, вы попадаете в довольно глубокие воды, потому что это не- тривиально передать все свойства вашего состояния, особенно без утечки вашего старого Context / Activity, передав его в новый экземпляр.

Пожалуйста, укажите, что вы пытаетесь сделать.

один из возможных обходных путей - использовать одно дополнительное фиктивное действие, которое будет запускаться с первого действия, и какое задание должно запустить новый его экземпляр. Или просто отложите вызов act.finish () после запуска нового.

Если вам нужно сохранить большую часть состояния, вы попадаете в довольно глубокие воды, потому что это не- тривиально передать все свойства вашего состояния, особенно без утечки вашего старого Context / Activity, передав его новому экземпляру.

Пожалуйста, укажите, что вы пытаетесь сделать.

один из возможных обходных путей - использовать одно дополнительное фиктивное действие, которое будет запускаться с первого действия, и какое задание должно запустить новый его экземпляр. Или просто отложите вызов act.finish () после запуска нового.

Если вам нужно сохранить большую часть состояния, вы попадаете в довольно глубокие воды, потому что это не- тривиально передать все свойства вашего состояния, особенно без утечки вашего старого Context / Activity, передав его в новый экземпляр.

Пожалуйста, укажите, что вы пытаетесь сделать.

1
ответ дан 23 November 2019 в 00:15
поделиться

До SDK 11 это можно было сделать так:

public void reload() {
    Intent intent = getIntent();
    overridePendingTransition(0, 0);
    intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
    finish();
    overridePendingTransition(0, 0);
    startActivity(intent);
}
129
ответ дан 23 November 2019 в 00:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: