参考Flutter教程,我遇到了一个下划线,_.
我知道在Java中,它_被用作私有变量的命名约定.
_真的是私有的(不可访问,其他类),或者是它只是一个命名约定?变量
class RandomWordsState extends State<RandomWords> {
final List<WordPair> _suggestions = <WordPair>[];
final Set<WordPair> _saved = new Set<WordPair>();
final TextStyle _biggerFont = const TextStyle(fontSize: 18.0);
...
}
Run Code Online (Sandbox Code Playgroud)
_Widget设为私有?在这种情况下,主类不会无法评估Widget吗?窗口小部件
Widget _buildRow(WordPair pair) {
final bool alreadySaved = _saved.contains(pair); // Add this line.
...
}
Run Code Online (Sandbox Code Playgroud) 我对admob adrequest感到困惑.我不明白adRequest.addTestDevice("device_id").
如果我写:
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.addTestDevice(DeviceInfo.getDeviceId(activity)).build();
Run Code Online (Sandbox Code Playgroud)
对于每个设备,它会影响我的AdMob帐户吗?或者 只是每个测试设备或现实设备的addTestDevice("deviceid")?如果我只将我的测试设备的ID添加到AdRequest,那么它是否会将广告显示给其他设备?
我在工作中继承了一些代码,我对一些实现有疑问.我正在处理的应用程序有一个包含大约15个不同片段的Activity.处理这些片段的Activity中的逻辑大致可以使用以下伪代码进行汇总:
if (button_1 selected) {
load fragment_1;
} else if (button_2 selected) {
load fragment_2;
} else if (button_3 selected) {
load fragment_3;
} ...and so on x15ish
Run Code Online (Sandbox Code Playgroud)
我的问题是:是否存在某种Android设计模式来处理这样的情况?代码有效; 但是,对于一个巨大的if/else或case声明,我感觉不太舒服.我看到了这个问题,它似乎与我遇到的问题非常相似.我在互联网上做了很多搜索,但我没有找到这种情况的例子或最佳实践.
如果有人可以指出我正确的方向或有一些建议; 那太棒了.谢谢!
场景:
在测试片段中的线程时遇到一个奇怪的问题。
我有一个用Kotlin编写的片段,其onResume()中包含以下片段:
override fun onResume() {
super.onResume()
val handlerThread = HandlerThread("Stuff")
handlerThread.start()
val handler = Handler(handlerThread.looper)
handler.post {
Thread.sleep(2000)
tv_name.setText("Something something : " + isMainThread())
}
}
Run Code Online (Sandbox Code Playgroud)
is MainThread()是一个检查当前线程是否为主线程的函数,如下所示:
private fun isMainThread(): Boolean = Looper.myLooper() == Looper.getMainLooper()
Run Code Online (Sandbox Code Playgroud)
我看到我的TextView在2秒后更新为“ Something something:false”
看到false告诉我该线程当前不是UI / Main线程。
我以为这很奇怪,因此我创建了相同的片段,但用onResume()的以下代码段用Java编写:
@Override
public void onResume() {
super.onResume();
HandlerThread handlerThread = new HandlerThread("stuff");
handlerThread.start();
new Handler(handlerThread.getLooper()).post(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
textView.setText("Something something...");
}
}); …Run Code Online (Sandbox Code Playgroud) 我有一个int名为 的变量mCurrentIndex。当它的值发生变化时我想做一些事情。
例如:
public class MainActivity extends Activity{
private int mCurrentIndex = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Apps logic.
}
public onCurrentIndexValueChange(){
button.setClickable(true);
}
}
Run Code Online (Sandbox Code Playgroud)