• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

App Inventor How to lock my list view before purchase in app billing in android?

How can I lock my list view before the app purchase?

My list view has 35 items and I want it so that when a user uses my app the first time he/she can only open 20 items. When the user purchases the app then he/she can read all the items in a list view.
 
Difficult to say without seeing your code, but how is your ListView populated? If you have hardcoded items in the list, then you could check whether the app has been paid for, and if not, then limit the number of items in the list.
How does your app know if it's been purchased?
 
Difficult to say without seeing your code, but how is your ListView populated? If you have hardcoded items in the list, then you could check whether the app has been paid for, and if not, then limit the number of items in the list.
<br> How does your app know if it's been purchased?


I have listview inside fragment and the items are in an array list and list adapter
 

Attachments

  • IMG_20170919_004300.jpeg
    IMG_20170919_004300.jpeg
    613.3 KB · Views: 192
  • IMG_20170919_004253.jpeg
    IMG_20170919_004253.jpeg
    627.2 KB · Views: 157
  • IMG_20170919_004235.jpeg
    IMG_20170919_004235.jpeg
    653.4 KB · Views: 164
  • IMG_20170919_004219.jpeg
    IMG_20170919_004219.jpeg
    650.8 KB · Views: 235
That's not very readable. Please paste the code into [code][/code] tags.
 
That's not very readable. Please paste the code into [code][/code] tags.


package com.kookistudios.electroworld.Fragments;


import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.support.v4.view.MenuItemCompat;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.support.v7.widget.SearchView;
import android.widget.TextView;

import com.kookistudios.electroworld.Activities.AndActivity;
import com.kookistudios.electroworld.Activities.BinaryAdderActivity;
import com.kookistudios.electroworld.Activities.BinaryDecoderActivity;
import com.kookistudios.electroworld.Activities.BinaryEncodersActivity;
import com.kookistudios.electroworld.Activities.CapacitorActivity;
import com.kookistudios.electroworld.Activities.CountersActivity;
import com.kookistudios.electroworld.Activities.DCVoltage;
import com.kookistudios.electroworld.Activities.DFlipFlopActivity;
import com.kookistudios.electroworld.Activities.DcMotorActivity;
import com.kookistudios.electroworld.Activities.DemultiplexerActivity;
import com.kookistudios.electroworld.Activities.DiacActivity;
import com.kookistudios.electroworld.Activities.DiodeActivity;
import com.kookistudios.electroworld.Activities.FiltersActivity;
import com.kookistudios.electroworld.Activities.IC555Activity;
import com.kookistudios.electroworld.Activities.InductorActivity;
import com.kookistudios.electroworld.Activities.JKFlipFlopActivity;
import com.kookistudios.electroworld.Activities.MultiplexerActivity;
import com.kookistudios.electroworld.Activities.NANDActivity;
import com.kookistudios.electroworld.Activities.NORGateActivity;
import com.kookistudios.electroworld.Activities.ORGateActivity;
import com.kookistudios.electroworld.Activities.OperationalAmplifiersActivity;
import com.kookistudios.electroworld.Activities.PhotodiodeActivity;
import com.kookistudios.electroworld.Activities.Plugs;
import com.kookistudios.electroworld.Activities.Potentiometer;
import com.kookistudios.electroworld.Activities.Radio;
import com.kookistudios.electroworld.Activities.ResistorActivity;
import com.kookistudios.electroworld.Activities.SRFlipFlopActivity;
import com.kookistudios.electroworld.Activities.SevenSegmentActivity;
import com.kookistudios.electroworld.Activities.ShiftRegistersActivity;
import com.kookistudios.electroworld.Activities.TFlipFlopActivity;
import com.kookistudios.electroworld.Activities.ThyristorActivity;
import com.kookistudios.electroworld.Activities.TransformerActivity;
import com.kookistudios.electroworld.Activities.TransistorActivity;
import com.kookistudios.electroworld.Activities.TriacActivity;
import com.kookistudios.electroworld.Activities.VolatgeActivity;
import com.kookistudios.electroworld.Activities.XNORGateActivity;
import com.kookistudios.electroworld.Activities.XORGateActivity;
import com.kookistudios.electroworld.R;

import java.util.ArrayList;
import java.util.List;


public class ComponentsFragment extends ListFragment implements SearchView.OnQueryTextListener, MenuItem.OnActionExpandListener {

List<String> mAllValues;
private ArrayAdapter<String> mAdapter;
private Context mContext;

@override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mContext = getActivity();
setHasOptionsMenu(true);
populateList();

}





@override
public void onDetach() {
super.onDetach();
}



public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.datasheetlayout, container, false);

ListView listView = (ListView) rootView.findViewById(android.R.id.list);
TextView emptyTextView = (TextView) rootView.findViewById(android.R.id.empty);
listView.setEmptyView(emptyTextView);


setRetainInstance(true);
return rootView;

}


@override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.search_menu, menu);
MenuItem searchItem = menu.findItem(R.id.action_search);
SearchView searchView =
(SearchView) MenuItemCompat.getActionView(searchItem);
searchView.setOnQueryTextListener(this);
searchView.setQueryHint("Search");

super.onCreateOptionsMenu(menu, inflater);

super.onCreateOptionsMenu(menu, inflater);
}

@override
public boolean onQueryTextSubmit(String query) {
return true;
}

@override
public boolean onQueryTextChange(String newText) {
if (newText == null || newText.trim().isEmpty()) {
resetSearch();
return false;
}

List<String> filteredValues = new ArrayList<>(mAllValues);
for (String value : mAllValues) {
if (!value.toLowerCase().contains(newText.toLowerCase())) {
filteredValues.remove(value);
}
}

mAdapter = new ArrayAdapter<>(mContext, android.R.layout.simple_list_item_1, filteredValues);
setListAdapter(mAdapter);

return false;
}

public void resetSearch() {
mAdapter = new ArrayAdapter<>(mContext, android.R.layout.simple_list_item_1, mAllValues);
setListAdapter(mAdapter);
}

@override
public boolean onMenuItemActionExpand(MenuItem item) {
return true;
}

@override
public boolean onMenuItemActionCollapse(MenuItem item) {
return true;
}





private void populateList() {

mAllValues = new ArrayList<>();

mAllValues.add("Resistor");
mAllValues.add("Capacitor");
mAllValues.add("Transistor");
mAllValues.add("Diode");
mAllValues.add("Filters");
mAllValues.add("Operational Amplifier");
mAllValues.add("Seven Segment Displays");
mAllValues.add("Thyristor");
mAllValues.add("TRIAC");
mAllValues.add("DIAC");
mAllValues.add("SR FlipFlop");
mAllValues.add("JK FlipFlop");
mAllValues.add("D FlipFlop");
mAllValues.add("T FlipFlop");
mAllValues.add("Counters");
mAllValues.add("Shift Register");
mAllValues.add("Binary Adder");
mAllValues.add("Binary Encoders");
mAllValues.add("Binary Decoder");
mAllValues.add("Multiplexer");
mAllValues.add("Demultiplexer");
mAllValues.add("OR Gate");
mAllValues.add("AND Gate");
mAllValues.add("NAND Gate");
mAllValues.add("NOR Gate");
mAllValues.add("XOR Gate");
mAllValues.add("XNOR Gate");
mAllValues.add("IC 555");
mAllValues.add("Transformer");
mAllValues.add("VoltMeter");
mAllValues.add("Radio frequency");
mAllValues.add("Plug and socket types");
mAllValues.add("DC Motor");
mAllValues.add("Inductor");
mAllValues.add("Photo Diode");
mAllValues.add("Different DC to DC Voltage Conversion Methods");
mAllValues.add("Potentiometer");

mAdapter = new ArrayAdapter<>(mContext, android.R.layout.simple_list_item_1, mAllValues);
setListAdapter(mAdapter);
}

public void onListItemClick(ListView listView, View view, int position, long id) {
String item = (String) listView.getAdapter().getItem(position);


if ("Resistor".equals(item)) {
Intent intent = new Intent(view.getContext(), ResistorActivity.class);
startActivity(intent);
getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_in);

}

if ("Capacitor".equals(item)) {
Intent intent = new Intent(view.getContext(), CapacitorActivity.class);
startActivity(intent);
getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_in);
}

if ("Transistor".equals(item)) {
Intent intent = new Intent(view.getContext(), TransistorActivity.class);
startActivity(intent);
getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_in);
}

if ("Diode".equals(item)) {
Intent intent = new Intent(view.getContext(), DiodeActivity.class);
startActivity(intent);
getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_in);
}

if ("Filters".equals(item)) {
Intent intent = new Intent(view.getContext(), FiltersActivity.class);
startActivity(intent);
getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_in);
}

if ("Operational Amplifier".equals(item)) {
Intent intent = new Intent(view.getContext(), OperationalAmplifiersActivity.class);
startActivity(intent);
getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_in);
}



if ("Seven Segment Displays".equals(item)) {
Intent intent = new Intent(view.getContext(), SevenSegmentActivity.class);
startActivity(intent);
getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_in);
}

if ("Thyristor".equals(item)) {
Intent intent = new Intent(view.getContext(), ThyristorActivity.class);
startActivity(intent);
getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_in);
}

if ("TRIAC".equals(item)) {
Intent intent = new Intent(view.getContext(), TriacActivity.class);
startActivity(intent);
getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_in);
}

if ("DIAC".equals(item)) {
Intent intent = new Intent(view.getContext(), DiacActivity.class);
startActivity(intent);
getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_in);
}

if ("SR FlipFlop".equals(item)) {
Intent intent = new Intent(view.getContext(), SRFlipFlopActivity.class);
startActivity(intent);
getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_in);
}

if ("JK FlipFlop".equals(item)) {
Intent intent = new Intent(view.getContext(), JKFlipFlopActivity.class);
startActivity(intent);
getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_in);
}

if ("D FlipFlop".equals(item)) {
Intent intent = new Intent(view.getContext(), DFlipFlopActivity.class);
startActivity(intent);
getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_in);
}

if ("T FlipFlop".equals(item)) {
Intent intent = new Intent(view.getContext(), TFlipFlopActivity.class);
startActivity(intent);
getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_in);
}

if ("Counters".equals(item)) {
Intent intent = new Intent(view.getContext(), CountersActivity.class);
startActivity(intent);
getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_in);
}

if ("Shift Register".equals(item)) {
Intent intent = new Intent(view.getContext(), ShiftRegistersActivity.class);
startActivity(intent);
getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_in);
}


if ("Binary Adder".equals(item)) {
Intent intent = new Intent(view.getContext(), BinaryAdderActivity.class);
startActivity(intent);
getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_in);
}

if ("Binary Encoders".equals(item)) {
Intent intent = new Intent(view.getContext(), BinaryEncodersActivity.class);
startActivity(intent);
getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_in);
}

if ("Binary Decoder".equals(item)) {
Intent intent = new Intent(view.getContext(), BinaryDecoderActivity.class);
startActivity(intent);
getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_in);
}


if ("Multiplexer".equals(item)) {
Intent intent = new Intent(view.getContext(), MultiplexerActivity.class);
startActivity(intent);
getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_in);
}

if ("Demultiplexer".equals(item)) {
Intent intent = new Intent(view.getContext(), DemultiplexerActivity.class);
startActivity(intent);
getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_in);
}

if ("OR Gate".equals(item)) {
Intent intent = new Intent(view.getContext(), ORGateActivity.class);
startActivity(intent);
getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_in);
}

if ("AND Gate".equals(item)) {
Intent intent = new Intent(view.getContext(), AndActivity.class);
startActivity(intent);
getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_in);
}

if ("NAND Gate".equals(item)) {
Intent intent = new Intent(view.getContext(), NANDActivity.class);
startActivity(intent);
getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_in);
}

if ("NOR Gate".equals(item)) {
Intent intent = new Intent(view.getContext(), NORGateActivity.class);
startActivity(intent);
getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_in);
}

if ("XOR Gate".equals(item)) {
Intent intent = new Intent(view.getContext(), XORGateActivity.class);
startActivity(intent);
getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_in);
}

if ("XNOR Gate".equals(item)) {
Intent intent = new Intent(view.getContext(), XNORGateActivity.class);
startActivity(intent);
getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_in);
}

if ("IC 555".equals(item)) {
Intent intent = new Intent(view.getContext(), IC555Activity.class);
startActivity(intent);
getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_in);
}

if ("Transformer".equals(item)) {
Intent intent = new Intent(view.getContext(), TransformerActivity.class);
startActivity(intent);
getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_in);
}

if ("VoltMeter".equals(item)) {
Intent intent = new Intent(view.getContext(), VolatgeActivity.class);
startActivity(intent);
getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_in);
}


if ("Radio frequency".equals(item)) {
Intent intent = new Intent(view.getContext(), Radio.class);
startActivity(intent);
getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_in);
}


if ("Plug and socket types".equals(item)) {
Intent intent = new Intent(view.getContext(), Plugs.class);
startActivity(intent);
getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_in);
}

if ("DC Motor".equals(item)) {
Intent intent = new Intent(view.getContext(), DcMotorActivity.class);
startActivity(intent);
getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_in);
}

if ("Inductor".equals(item)) {
Intent intent = new Intent(view.getContext(), InductorActivity.class);
startActivity(intent);
getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_in);
}

if ("Photo Diode".equals(item)) {
Intent intent = new Intent(view.getContext(), PhotodiodeActivity.class);
startActivity(intent);
getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_in);
}

if ("Different DC to DC Voltage Conversion Methods".equals(item)) {
Intent intent = new Intent(view.getContext(), DCVoltage.class);
startActivity(intent);
getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_in);
}

if ("Potentiometer".equals(item)) {
Intent intent = new Intent(view.getContext(), Potentiometer.class);
startActivity(intent);
getActivity().overridePendingTransition(R.anim.fade_in, R.anim.fade_in);
}
}









}
 
Ok thanks, so if you could please answer my other question, which was - How does your app know if it's been purchased?
 
So is your question 'how to implement an in-app purchase system?'
&lt;br&gt; That's way too big a question to answer fully here. Best I can do is give a couple of links, and leave you to do a bit of reading
&lt;br&gt;
&lt;br&gt;
&lt;a href='https://developer.android.com/google/play/billing/billing_integrate.html' target='_blank' class='externalLink'&gt;https://developer.android.com/google/play/billing/billing_integrate.html&lt;/a&gt;
&lt;br&gt;
&lt;a href='https://www.google.co.uk/search?q=android+in-app+purchase+tutorial' target='_blank' class='externalLink'&gt;https://www.google.co.uk/search?q=android+in-app+purchase+tutorial&lt;/a&gt;


Thank you
 
Back
Top Bottom