My teacher wants us to make an app on Android Studio, so I chose to make a music app.
package com.example.laura.homework;
import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
public class MainActivity extends Activity {
MediaPlayer mustafa1;
MediaPlayer mustafa2;
MediaPlayer tarkan1;
MediaPlayer tarkan2;
MediaPlayer tarkan3;
MediaPlayer tarkan4;
MediaPlayer tarkan5;
MediaPlayer tarkan6;
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mustafa1 = MediaPlayer.create(this,R.raw.aya_benzer_mustafa_sandal)
mustafa2 = MediaPlayer.create(this,R.raw.melek_yuzulum_mustafa_sandal)
tarkan1 = MediaPlayer.create(this,R.raw.simarik_tarkan)
tarkan2 = MediaPlayer.create(this,R.raw.adimi_kalbine_yaz_tarkan)
tarkan3 = MediaPlayer.create(this,R.raw.dudu_tarkan)
tarkan4 = MediaPlayer.create(this, R.raw.kuzu_kuzu_tarkan)
tarkan5 = MediaPlayer.create(this,R.raw.yemin_ettim_tarkan)
tarkan6 = MediaPlayer.create(this, R.raw.op_tarkan)
}
#Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
#Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
package com.example.laura.homework;
import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
public class MainActivity extends Activity {
MediaPlayer mustafa1;
MediaPlayer mustafa2;
MediaPlayer tarkan1;
MediaPlayer tarkan2;
MediaPlayer tarkan3;
MediaPlayer tarkan4;
MediaPlayer tarkan5;
MediaPlayer tarkan6;
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mustafa1 = MediaPlayer.create(this,R.raw.aya_benzer_mustafa_sandal)
mustafa2 = MediaPlayer.create(this,R.raw.melek_yuzulum_mustafa_sandal)
tarkan1 = MediaPlayer.create(this,R.raw.simarik_tarkan)
tarkan2 = MediaPlayer.create(this,R.raw.adimi_kalbine_yaz_tarkan)
tarkan3 = MediaPlayer.create(this,R.raw.dudu_tarkan)
tarkan4 = MediaPlayer.create(this, R.raw.kuzu_kuzu_tarkan)
tarkan5 = MediaPlayer.create(this,R.raw.yemin_ettim_tarkan)
tarkan6 = MediaPlayer.create(this, R.raw.op_tarkan)
}
#Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
#Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
and I get, in my error "stash," "';' expected (line 25)" and so on trough 32. I need help to resolve this problem. Any suggestions?
included; the end of the line 25 et seq
mustafa1 = MediaPlayer.create(this,R.raw.aya_benzer_mustafa_sandal);
mustafa2 = MediaPlayer.create(this,R.raw.melek_yuzulum_mustafa_sandal);
tarkan1 = MediaPlayer.create(this,R.raw.simarik_tarkan);
tarkan2 = MediaPlayer.create(this,R.raw.adimi_kalbine_yaz_tarkan);
tarkan3 = MediaPlayer.create(this,R.raw.dudu_tarkan);
tarkan4 = MediaPlayer.create(this, R.raw.kuzu_kuzu_tarkan);
tarkan5 = MediaPlayer.create(this,R.raw.yemin_ettim_tarkan);
tarkan6 = MediaPlayer.create(this, R.raw.op_tarkan);
Okay, so I think its b/c you didn't end any of these statements with ;:
mustafa1 = MediaPlayer.create(this,R.raw.aya_benzer_mustafa_sandal)
mustafa2 = MediaPlayer.create(this,R.raw.melek_yuzulum_mustafa_sandal)
tarkan1 = MediaPlayer.create(this,R.raw.simarik_tarkan)
tarkan2 = MediaPlayer.create(this,R.raw.adimi_kalbine_yaz_tarkan)
tarkan3 = MediaPlayer.create(this,R.raw.dudu_tarkan)
tarkan4 = MediaPlayer.create(this, R.raw.kuzu_kuzu_tarkan)
tarkan5 = MediaPlayer.create(this,R.raw.yemin_ettim_tarkan)
tarkan6 = MediaPlayer.create(this, R.raw.op_tarkan)
Related
I would like to implement a new intent when my card from CardView is clicked. I have already implemented for one of the cards. Is there any other way in which the adapter is able to identify the position and bring to a new activity for each card? Like linking the each card to their individual activity with a template layout. (The new activity for each card will be of the same layout, just different texts and images).
I have added an ImageButton on my cards. However, when I click on the ImageButton, it does not bring me to the new activity. Clicking on the card edges/portion and not the image itself would work. Is there something I missed out on my code? I can't seem to get it.
Here are my codes:
MuaActivity.java
package android.com.example.weddingappfinale;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.inputmethod.EditorInfo;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.SearchView;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import java.util.ArrayList;
import Adapters.MuaAdapter;
import CustomerActivities.ShimaMatinActivity;
public class MuaActivity extends AppCompatActivity {
private RecyclerView mRecyclerView;
private MuaAdapter mAdapter;
private RecyclerView.LayoutManager mLayoutManager;
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mua_list);
getSupportActionBar().setTitle("Make Up Artists");
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
final ArrayList<MuaView> muaView = new ArrayList<>();
muaView.add(new MuaView(R.drawable.mua_image, "Shima Matin Bridal Services"));
muaView.add(new MuaView(R.drawable.mua_image, "Aake Up Artist Pte Ltd"));
muaView.add(new MuaView(R.drawable.mua_image, "Lake Up Artist 3Pte Ltd"));
muaView.add(new MuaView(R.drawable.mua_image, "f Up Artist Pte Ltd"));
// ArrayList
mRecyclerView = findViewById(R.id.recycler_view_list);
mRecyclerView.setHasFixedSize(true);
mLayoutManager = new LinearLayoutManager(this);
mAdapter = new MuaAdapter(muaView);
mRecyclerView.setLayoutManager(mLayoutManager);
mRecyclerView.setAdapter(mAdapter);
mAdapter.setOnItemClickListener(new MuaAdapter.OnItemClickListener() {
#Override
public void onItemClick(int position) {
Intent i = new Intent (MuaActivity.this, ShimaMatinActivity.class);
startActivity(i);
finish();
}
});
}
#Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.search, menu);
MenuItem searchItem = menu.findItem(R.id.action_search);
SearchView searchView = (SearchView) searchItem.getActionView();
searchView.setImeOptions(EditorInfo.IME_ACTION_DONE);
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
#Override
public boolean onQueryTextSubmit(String query) {
return false;
}
#Override
public boolean onQueryTextChange(String newText) {
mAdapter.getFilter().filter(newText);
return false;
}
});
return true;
}
}
MuaAdapter.java
package Adapters;
import android.com.example.weddingappfinale.MuaView;
import android.com.example.weddingappfinale.R;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Filter;
import android.widget.Filterable;
import android.widget.ImageButton;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import java.util.ArrayList;
import java.util.List;
public class MuaAdapter extends RecyclerView.Adapter<MuaAdapter.MuaViewHolder> implements Filterable {
private ArrayList<MuaView> mMuaView;
private ArrayList<MuaView> mMuaViewFull;
private OnItemClickListener mListener;
public interface OnItemClickListener {
void onItemClick(int position);
}
public void setOnItemClickListener(OnItemClickListener listener) {
mListener = listener;
}
public static class MuaViewHolder extends RecyclerView.ViewHolder {
public ImageButton mImageButton;
public TextView mTextView1;
public MuaViewHolder(#NonNull View itemView, final OnItemClickListener listener) {
super(itemView);
mImageButton = itemView.findViewById(R.id.mua_imageButton);
mTextView1 = itemView.findViewById(R.id.mua_title);
itemView.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View v) {
if (listener != null) {
int position = getAdapterPosition();
if (position != RecyclerView.NO_POSITION) {
listener.onItemClick(position);
}
}
}
});
}
}
public MuaAdapter(ArrayList<MuaView> muaView) {
this.mMuaView = muaView;
mMuaViewFull = new ArrayList<>(muaView);
}
#NonNull
#Override
public MuaViewHolder onCreateViewHolder(#NonNull ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.mua_view, parent, false);
MuaViewHolder mvh = new MuaViewHolder(v, mListener);
return mvh;
}
#Override
public void onBindViewHolder(#NonNull MuaViewHolder holder, int position) {
MuaView currentView = mMuaView.get(position);
holder.mImageButton.setImageResource(currentView.getImageResource());
holder.mTextView1.setText(currentView.getText1());
}
#Override
public int getItemCount() {
return mMuaView.size();
}
public Filter getFilter() {
return MuaFilter;
}
private Filter MuaFilter = new Filter() {
#Override
protected FilterResults performFiltering(CharSequence constraint) {
List<MuaView> filteredList = new ArrayList<>();
if (constraint == null || constraint.length() == 0) {
filteredList.addAll(mMuaViewFull);
} else {
String filterPattern = constraint.toString().toLowerCase().trim();
for (MuaView item : mMuaViewFull) {
if (item.getText1().toLowerCase().contains(filterPattern)) {
filteredList.add(item);
}
}
}
FilterResults results = new FilterResults();
results.values = filteredList;
return results;
}
#Override
protected void publishResults(CharSequence constraint, FilterResults results) {
mMuaView.clear();
mMuaView.addAll((ArrayList) results.values);
notifyDataSetChanged();
}
};
}
Answer for first question:
You could pass the position of the item to the new activity with intent.putExtra().
In the new activity you can read out the number with intent.getExtra() and setup your layout content as you want depending on the number you got.
This way you only have one Activity instead of many.
Activity 1
Intent intent = new Intent(this, Shima.class);
intent.putExtra("position_value", position);
startActivity(intent);
Activity 2
Intent intent = getIntent();
int position = intent.getIntExtra("position_value", 0); // 0 is the default value
// set a layout based on position with switch case or if...
switch (position){
case 1:
setContentView(R.layout.activity_card_one);
break;
case 2:
setContentView(R.layout.activity_card_two);
break;
....
Second question:
See here.
Basicaly the same way like
itemView.setOnClickListener(new View.OnClickListener() {...
You can set a image depending on what item has been clicked using something like this
private Integer images[] = {R.drawable.pic1, R.drawable.pic2, R.drawable.pic3}
and
imageView.setImageResource(images[position]);
(maybe position -1, not sure if first item in recyclerView is 1 or 0)
`I'm using dialog flow for chat bot in my app. I've tried to put some images for chat bot to send it to user. It works fine and appears in dialog flow simulator but it doesn't work and nothing appear in my app. Any help? I'm using android studio. I've tried to change the code so many time the app works but the same problem
The image shows the result in my app and the result in dialog flow simulator
image to understand
package com.example.lmdinalarbi;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.design.widget.NavigationView;
import android.support.v4.content.ContextCompat;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.text.TextUtils;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import com.github.bassaer.chatmessageview.model.Message;
import com.github.bassaer.chatmessageview.view.ChatView;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
import org.jetbrains.annotations.NotNull;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import ai.api.AIServiceException;
import ai.api.RequestExtras;
import ai.api.android.AIConfiguration;
import ai.api.android.AIDataService;
import ai.api.android.GsonFactory;
import ai.api.model.AIContext;
import ai.api.model.AIError;
import ai.api.model.AIEvent;
import ai.api.model.AIRequest;
import ai.api.model.AIResponse;
import ai.api.model.Metadata;
import ai.api.model.Result;
import ai.api.model.Status;
public class chatbotamali extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener,View.OnClickListener
{
public static final String TAG = MainActivity.class.getName();
private Gson gson = GsonFactory.getGson();
private AIDataService aiDataService;
private ChatView chatView;
private User myAccount;
private User amali;
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_chatbotamali);
initChatView();
//Language, Dialogflow Client access token
final LanguageConfig config = new LanguageConfig("JavaScript", "239001d3094444b390e30d3e3ea6832bwwww"
,
AIConfiguration.SupportedLanguages.English,
AIConfiguration.RecognitionEngine.System
);
initService(config);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.addDrawerListener(toggle);
toggle.syncState();
getSupportActionBar().setTitle("AM ALI");
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
}
#Override
public void onClick(View v) {
//new message
final Message message = new Message.Builder()
.setUser(myAccount)
.setRight(true)
.setText(chatView.getInputText())
.hideIcon(true)
.build();
//Set to chat view
chatView.send(message);
sendRequest(chatView.getInputText());
//Reset edit text
chatView.setInputText("");
}
private void sendRequest(String text) {
Log.d(TAG, text);
final String queryString = String.valueOf(text);
final String eventString = null;
final String contextString = null;
if (TextUtils.isEmpty(queryString) && TextUtils.isEmpty(eventString)) {
onError(new AIError(getString(R.string.non_empty_query)));
return;
}
new AiTask().execute(queryString, eventString, contextString);
}
public class AiTask extends AsyncTask<String, Void, AIResponse> {
private AIError aiError;
#Override
protected AIResponse doInBackground(final String... params) {
final AIRequest request = new AIRequest();
String query = params[0];
String event = params[1];
String context = params[2];
if (!TextUtils.isEmpty(query)){
request.setQuery(query);
}
if (!TextUtils.isEmpty(event)){
request.setEvent(new AIEvent(event));
}
RequestExtras requestExtras = null;
if (!TextUtils.isEmpty(context)) {
final List<AIContext> contexts = Collections.singletonList(new AIContext(context));
requestExtras = new RequestExtras(contexts, null);
}
try {
return aiDataService.request(request, requestExtras);
} catch (final AIServiceException e) {
aiError = new AIError(e);
return null;
}
}
#Override
protected void onPostExecute(final AIResponse response) {
if (response != null) {
onResult(response);
} else {
onError(aiError);
}
}
}
private void onResult(final AIResponse response) {
runOnUiThread(new Runnable() {
#Override
public void run() {
// Variables
gson.toJson(response);
final Status status = response.getStatus();
final Result result = response.getResult();
final String speech = result.getFulfillment().getSpeech();
final Metadata metadata = result.getMetadata();
final HashMap<String, JsonElement> params = result.getParameters();
// Logging
Log.d(TAG, "onResult");
Log.i(TAG, "Received success response");
Log.i(TAG, "Status code: " + status.getCode());
Log.i(TAG, "Status type: " + status.getErrorType());
Log.i(TAG, "Resolved query: " + result.getResolvedQuery());
Log.i(TAG, "Action: " + result.getAction());
Log.i(TAG, "Speech: " + speech);
if (metadata != null) {
Log.i(TAG, "Intent id: " + metadata.getIntentId());
Log.i(TAG, "Intent name: " + metadata.getIntentName());
}
if (params != null && !params.isEmpty()) {
Log.i(TAG, "Parameters: ");
for (final Map.Entry<String, JsonElement> entry : params.entrySet()) {
Log.i(TAG, String.format("%s: %s",
entry.getKey(), entry.getValue().toString()));
}
}
//Update view to bot says
final Message receivedMessage = new Message.Builder()
.setUser(amali)
.setRight(false)
.setText(speech)
.build();
chatView.receive(receivedMessage);
}
});
}
private void onError(final AIError error) {
runOnUiThread(new Runnable() {
#Override
public void run() {
Log.e(TAG,error.toString());
}
});
}
private void initChatView() {
int myId = 0;
Bitmap icon = BitmapFactory.decodeResource(getResources(), R.drawable.tunis);
String myName = "wledelmdina";
myAccount = new User(myId, myName, icon);
int botId = 1;
String botName = "amali";
amali = new User(botId, botName, icon);
chatView = findViewById(R.id.chat_view);
chatView.setRightBubbleColor(ContextCompat.getColor(this, R.color.green500));
chatView.setLeftBubbleColor(Color.RED);
chatView.setBackgroundColor(ContextCompat.getColor(this, R.color.aidialog_background));
chatView.setSendButtonColor(ContextCompat.getColor(this, R.color.lightBlue500));
chatView.setSendIcon(R.drawable.ic_action_send);
chatView.setRightMessageTextColor(Color.WHITE);
chatView.setLeftMessageTextColor(Color.WHITE);
chatView.setUsernameTextColor(Color.BLACK);
chatView.setSendTimeTextColor(Color.GRAY);
chatView.setDateSeparatorColor(Color.GRAY);
chatView.setInputTextHint("new message...");
chatView.setMessageMarginTop(5);
chatView.setMessageMarginBottom(5);
chatView.setOnClickSendButtonListener(this);
}
private void initService(final LanguageConfig languageConfig) {
final AIConfiguration.SupportedLanguages lang =
AIConfiguration.SupportedLanguages.fromLanguageTag(languageConfig.getLanguageCode());
final AIConfiguration config = new AIConfiguration(languageConfig.getAccessToken(),
lang,
AIConfiguration.RecognitionEngine.System);
aiDataService = new AIDataService(this, config);
}
#Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}
#Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
return true;
}
#Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
return super.onOptionsItemSelected(item);
}
#SuppressWarnings("StatementWithEmptyBody")
#Override
public boolean onNavigationItemSelected(#NotNull MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();
if (id == R.id.Eldmina) {
Intent intent=new Intent(this,MainActivity.class);
Bundle bundle=new Bundle();
bundle.putString("VALUE_SEND","this data Send");
startActivity(intent);
// Handle the camera action
} else if (id == R.id.souk) {
Intent intent=new Intent(this,elsoukmenu.class);
Bundle bundle=new Bundle();
bundle.putString("VALUE_SEND","this data Send");
startActivity(intent);
} else if (id == R.id.wled) {
Intent intent=new Intent(this,wledelmdina.class);
Bundle bundle=new Bundle();
bundle.putString("VALUE_SEND","this data Send");
startActivity(intent);
} else if (id == R.id.profile) {
}
else if (id == R.id.about) {
Intent intent=new Intent(this,aboutuss.class);
Bundle bundle=new Bundle();
bundle.putString("VALUE_SEND","this data Send");
startActivity(intent);
}
else if (id == R.id.report) {
Intent intent=new Intent(this,wledelmdinamenu.class);
Bundle bundle=new Bundle();
bundle.putString("VALUE_SEND","this data Send");
startActivity(intent);
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
}
build
I am new to Android Studio. I want to create an AlertDialog, which contains a simple TextView, that appears at every lap of time (e.g. 5 min) inside the checkbox, so if the checkbox is clicked, the AlertDialog appears every 5 min. If it's not clicked, then nothing appears. Help me please.
After a bit of experimentation, I was able to create something similar to what I think you want. This is the small project I created, but you can take just the parts of the code that are needed for your project.
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.LinearLayout;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity
{
TextView input;
long startTime = 0;
#Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
final LinearLayout ll = new LinearLayout(this);
setContentView(ll);
CheckBox cb = new CheckBox(getApplicationContext());
cb.setText("Checkbox");
ll.addView(cb);
cb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener()
{
#Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
if (isChecked)
{
startTime = System.currentTimeMillis();
timerHandler.postDelayed(timerRunnable, 0);
}
else
{
timerHandler.removeCallbacks(timerRunnable);
}
}
});
}
public void showDialog()
{
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle("Title");
alert.setMessage("Message");
input = new TextView (this);
alert.setView(input);
input.setText("Text");
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int whichButton)
{
// do stuff when Ok is clicked
}
});
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int whichButton)
{
// do stuff when Cancel is clicked
}
});
alert.show();
}
Handler timerHandler = new Handler();
Runnable timerRunnable = new Runnable()
{
#Override
public void run()
{
showDialog();
// Edit the second parameter to whatever time you want in milliseconds
timerHandler.postDelayed(this, 300_000);
}
};
#Override
public void onPause()
{
super.onPause();
timerHandler.removeCallbacks(timerRunnable);
}
}
Hopefully, this helps.
I just started app developing recently and stumbled upon a problem that I basically can't figure out : https://rubensousa.github.io/2016/08/viewpagercards
He instructed that on CardPagerAdapter.java in instantiateItem, I need to set the data according to the position. But how do I do it?
I want the first card to have a title of "FIRST CARD" while the second "SECOND CARD" and so on.. hope someone could help.
CardPagerAdapter.java
import android.support.v4.view.PagerAdapter;
import android.support.v7.widget.CardView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
public class CardPagerAdapter extends PagerAdapter implements CardAdapter {
private List<CardView> mViews;
private List<CardItem> mData;
private float mBaseElevation;
public CardPagerAdapter() {
mData = new ArrayList<>();
mViews = new ArrayList<>();
}
public void addCardItem(CardItem item) {
mViews.add(null);
mData.add(item);
}
public float getBaseElevation() {
return mBaseElevation;
}
#Override
public CardView getCardViewAt(int position) {
return mViews.get(position);
}
#Override
public int getCount() {
return mData.size();
}
#Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
#Override
public Object instantiateItem(ViewGroup container, int position) {
View view = LayoutInflater.from(container.getContext())
.inflate(R.layout.fragment_adapter, container, false);
container.addView(view);
bind(mData.get(position), view);
CardView cardView = (CardView) view.findViewById(R.id.cardView);
if (mBaseElevation == 0) {
mBaseElevation = cardView.getCardElevation();
}
cardView.setMaxCardElevation(mBaseElevation * MAX_ELEVATION_FACTOR);
mViews.set(position, cardView);
return view;
}
#Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
mViews.set(position, null);
}
private void bind(CardItem item, View view) {
TextView title = (TextView) view.findViewById(R.id.title);
TextView description = (TextView) view.findViewById(R.id.description);
Button button = (Button) view.findViewById(R.id.button);
title.setText(item.getTitle());
description.setText(item.getText());
button.setText(item.getButton());
}
}
I'm trying to change the Font of a textView (in my case custom_font)
but if gives the 2 error on this line:
txt.setTypeface(font);
At the (dot) it says:
Syntax error on token(s), misplaced construct(s)
At (Font) it says:
Syntax error on token "font", VariableDeclaratorId expected after this token
I have no idea how to fix it, i would be nice if anyone would help me :)
Thanks in advance.
MainActivity:
package com.test.testforStack;
import android.support.v7.app.ActionBarActivity;
import android.graphics.Typeface;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
public class MainActivity extends ActionBarActivity {
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
TextView txt = (TextView) findViewById(R.id.custom_font);
Typeface font = Typeface.createFromAsset(getAssets(), "fonts/hallo.ttf");
txt.setTypeface(font);
#Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
#Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
Try to move these three lines into your onCreate method:
TextView txt = (TextView) findViewById(R.id.custom_font);
Typeface font = Typeface.createFromAsset(getAssets(), "fonts/hallo.ttf");
txt.setTypeface(font);