New Blog Post

Android Spinner

Spinner spinner = findViewById(R.id.currency_spinner); // Create an ArrayAdapter using the String array and a spinner layout ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.spinner_values, R.layout.spinner_item); // Specify the layout to use when the list of choices appears adapter.setDropDownViewResource(R.layout.spinner_dropdown_item); // Apply the adapter to the spinner spinner.setAdapter(adapter); spinner.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position,…

Switch between activities

public class MainActivity extends AppCompatActivity { private Button mAddButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mAddButton = findViewById(R.id.addButton); mAddButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { openAddActivity(); } }); } public void openAddActivity(){ Intent intent = new Intent(this, Main2Activity.class); startActivity(intent); }

Android screen orientation

disable orientation change <activity android:name=”.MainActivity” android:screenOrientation=”portrait” tools:ignore=”LockedOrientationActivity”> Handling orientation state Saving instance state @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putInt(“ScoreKey”, mScore); outState.putInt(“IndexKey”, mIndex); } Retrieving instance state @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if (savedInstanceState != null){ mScore = savedInstanceState.getInt(“ScoreKey”); mIndex = savedInstanceState.getInt(“IndexKey”); } else { mScore = 0; mIndex = 0;…

Android App Lifecycle

Code class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) Log.d(“LifecycleTest”, “onCreate”) } override fun onStart() { super.onStart() Log.d(“LifecycleTest”, “onStart”) } override fun onResume() { super.onResume() Log.d(“LifecycleTest”, “onResume”) } override fun onPause() { super.onPause() Log.d(“LifecycleTest”, “onPause”) } override fun onSaveInstanceState(outState: Bundle) { super.onSaveInstanceState(outState) Log.d(“LifecycleTest”, “onSaveInstanceState”) } override fun onRestoreInstanceState(savedInstanceState: Bundle) { Log.d(“LifecycleTest”,…

Android Enable USB-Debugging

Go to Settings > General > About phone > Software information and tap “Build number” seven times until it says “You are now a developer” Go to Settings > General > Developer options and enable USB Debugging Drop down the notifications menu and click on “Tap for more USB options”. Most likely, the main title…

My first iPhone app – Part 3

Waveform of Audio File Installing I’ve tried a component FDWaveformView. It uses CocoaPods, a dependecy management tool like Python’s pip or Rust’s cargo. sudo gem install cocoapods To add CocoaPods support to an existing project you must add a Podfile cd XcodeProjects/PlayalongTrainer touch Podfile The content of the Podfile is pretty straght forward: target ‘PlayalongTrainer’…

Android Alerts

Toast Toasts are simple message dialogs val text = “Hello toast!” val duration = Toast.LENGTH_SHORT val toast = Toast.makeText(applicationContext, text, duration) toast.show() Toast.makeText(this@MainActivity, “Hello Toast!”, Toast.LENGTH_SHORT).show() Alerts val builder = AlertDialog.Builder(this) builder.setTitle(“SocketTimeoutException”) builder.setMessage(“The server is not responding – Try again later”) builder.setPositiveButton(android.R.string.yes) { dialog, which -> Toast.makeText(applicationContext, android.R.string.yes, Toast.LENGTH_SHORT).show() } builder.setNegativeButton(android.R.string.no) { dialog, which ->…

Features and Permissions in Android

Features and Permissions A permission is something an app is allowed to do 🙂 E.g. using the camera, reading location or accessing your contacts. <uses-permission android:name=”android.permission.CAMERA” /> <uses-feature android:name=”android.hardware.camera” android:required=”true” /> Internet Access If your app uses e.g. web-APIs you need internet access. This can be achieved by adding android.permission.INTERNET to your manifest. In this…