Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
I haven't tried anything yet so far because i'm still figuring out how to go about it. Here's my code so farWhat have you tried so far?
Please post your code.
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
public class MainActivity extends AppCompatActivity {
private Spinner chooseSize, chooseStore;
private EditText linkEditText;
private Button addButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//initiate editText and get the inputed text
linkEditText = (EditText) findViewById(R.id.editText);
String linkText = linkEditText.getText().toString();
addButton =(Button) findViewById(R.id.Addbutton);
//initiate size spinner and set array
chooseSize =(Spinner) findViewById(R.id.size_spinner);
chooseSize.setOnItemSelectedListener(new CustomOnItemSelectedListener());
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.size_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
chooseSize.setAdapter(adapter);
//initiate store spinner and set array
chooseStore =(Spinner) findViewById(R.id.store_spinner);
chooseStore.setOnItemSelectedListener(new CustomOnItemSelectedListener());
ArrayAdapter<CharSequence> storeAdapter = ArrayAdapter.createFromResource(this,
R.array.stores_array, android.R.layout.simple_spinner_item);
storeAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
chooseStore.setAdapter(storeAdapter);
addButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
}
}
import android.view.View;
import android.widget.AdapterView;
public class CustomOnItemSelectedListener implements AdapterView.OnItemSelectedListener {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
// An item was selected. You can retrieve the selected item using
//parent.getItemAtPosition(position);
switch (parent.getId()) {
case R.id.store_spinner:
// do stuff1
break;
case R.id.size_spinner:
// do stuff
break;
default:
break;
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// Another interface callback
}
}
It's a good start, you have all the components you need.
When you say "validate if the link matches the store the user selected", is this what you're unsure about?
Instead of allowing the user to enter a URL (link), why not have a list of stores, with associated URLs? When you pick a store name from the spinner, it automatically populates the EditText with the link.
Well you could try to match the store name as a substring of the URL. But it's not guaranteed to work 100%.
String storeName;
String siteUrl;
if (siteUrl.contains(storeName)) {
// It's Ok!
}
Well OnItemSelected would be the place to do it, wouldn't it? i.e. when the user has selected the store.
Actually, no. On second thought, your button click listener would be better, assuming the user has entered a URL into the EditText
Put the URL checking code in the onClick() method
import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private static final String LOG_TAG = "test1" ;
private Spinner chooseSize, chooseStore;
private EditText linkEditText;
private Button addButton;
private String storeName = "somestore";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//initiate editText and get the inputed text
linkEditText = (EditText) findViewById(R.id.editText);
final String siteUrl = linkEditText.getText().toString();
addButton =(Button) findViewById(R.id.Addbutton);
//initiate size spinner and set array
chooseSize =(Spinner) findViewById(R.id.size_spinner);
chooseSize.setOnItemSelectedListener(new CustomOnItemSelectedListener());
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.size_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
chooseSize.setAdapter(adapter);
//initiate store spinner and set array
chooseStore =(Spinner) findViewById(R.id.store_spinner);
chooseStore.setOnItemSelectedListener(new CustomOnItemSelectedListener());
ArrayAdapter<CharSequence> storeAdapter = ArrayAdapter.createFromResource(this,
R.array.stores_array, android.R.layout.simple_spinner_item);
storeAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
chooseStore.setAdapter(storeAdapter);
addButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (siteUrl.contains(storeName)) {
// It's Ok!
Log.d(LOG_TAG,"work");
}
}
});
}
}
import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private static final String LOG_TAG = "test1" ;
private Spinner chooseSize, chooseStore;
private EditText linkEditText;
private Button addButton;
private String storeName = "somestore";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//initiate editText and get the inputed text
linkEditText = (EditText) findViewById(R.id.editText);
final String siteUrl = linkEditText.getText().toString();
addButton =(Button) findViewById(R.id.Addbutton);
//initiate size spinner and set array
chooseSize =(Spinner) findViewById(R.id.size_spinner);
chooseSize.setOnItemSelectedListener(new CustomOnItemSelectedListener());
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.size_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
chooseSize.setAdapter(adapter);
//initiate store spinner and set array
chooseStore =(Spinner) findViewById(R.id.store_spinner);
chooseStore.setOnItemSelectedListener(new CustomOnItemSelectedListener());
ArrayAdapter<CharSequence> storeAdapter = ArrayAdapter.createFromResource(this,
R.array.stores_array, android.R.layout.simple_spinner_item);
storeAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
chooseStore.setAdapter(storeAdapter);
addButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (siteUrl.contains(storeName)) {
// It's Ok!
Log.d(LOG_TAG,"work");
}
}
});
}
}
final String siteUrl = linkEditText.getText().toString().toLowerCase();
I fixed code and its working now. Is it possible to set an OnClick for each spinner item.Oh come on man, think for yourself a little.
This line of code
Code:final String siteUrl = linkEditText.getText().toString().toLowerCase();
Is in your onCreate() method, which gets executed when your Activity starts. At that point, you've typed nothing into your EditText. So siteUrl will have a value of "".
What do you think you need to do to make this work properly?
I fixed code and its working now. Is it possible to set an OnClick for each spinner item.
By calling a method on that class which takes a String parameter.
Um... You don't call the onItemSelected() method of your Spinner listener class. That is called by the system automatically, when an item of your Spinner is selected.