Лучшая практика Android при Обновлении UI от BroadcastReceiver до определенного действия

Лично я не уверен, что все, что использует регулярные выражения в python, можно назвать элегантным. Большинство ответов здесь просто делают трюки типа «код гольфа» типа. Предполагается, что легкое кодирование должно быть понятным.

def to_snake_case(not_snake_case):
    final = ''
    for i in xrange(len(not_snake_case)):
        item = not_snake_case[i]
        if i < len(not_snake_case) - 1:
            next_char_will_be_underscored = (
                not_snake_case[i+1] == "_" or
                not_snake_case[i+1] == " " or
                not_snake_case[i+1].isupper()
            )
        if (item == " " or item == "_") and next_char_will_be_underscored:
            continue
        elif (item == " " or item == "_"):
            final += "_"
        elif item.isupper():
            final += "_"+item.lower()
        else:
            final += item
    if final[0] == "_":
        final = final[1:]
    return final

>>> to_snake_case("RegularExpressionsAreFunky")
'regular_expressions_are_funky'

>>> to_snake_case("RegularExpressionsAre Funky")
'regular_expressions_are_funky'

>>> to_snake_case("RegularExpressionsAre_Funky")
'regular_expressions_are_funky'
24
задан monmonja 18 July 2010 в 09:50
поделиться

1 ответ

Что мне недавно пришлось сделать, чтобы изменить текст Button после получения данных из LocalBroadcastManager, это сохранить значение в закрытом поле и затем выполнить пользовательский интерфейс в моем методе onResume ().

public class myClass extends Activity {

    private String myString;

    @Override
    public void onCreate(Bundle savedInstanceState) {       
        super.onCreate(savedInstanceState);         
        // register to receive data
        LocalBroadcastManager.getInstance(getActivity()).registerReceiver(receiver, new IntentFilter("myAction"));      
    }

    private BroadcastReceiver receiver = new BroadcastReceiver() {

        @Override
        public void onReceive(Context context, Intent intent) {
            // get the extra data included in the intent
            myString = intent.getStringExtra("myString");   
        }
    };

    @Override   
    public void onResume() {
        super.onResume();
        System.out.println("onResume");
        // do something to the UI
        myButton.setText(myString != null ? myString : "Default");  
    }
}
0
ответ дан elmango 28 November 2019 в 23:48
поделиться
Другие вопросы по тегам:

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