I don't know how to develop for android

This commit is contained in:
Astatin3
2024-03-24 17:49:47 -06:00
parent 407bc0aeef
commit 363470a275
51 changed files with 1274 additions and 0 deletions
@@ -0,0 +1,37 @@
package com.astatin3.scoutingapp2025;
import android.os.Bundle;
import com.google.android.material.bottomnavigation.BottomNavigationView;
import androidx.appcompat.app.AppCompatActivity;
import androidx.navigation.NavController;
import androidx.navigation.Navigation;
import androidx.navigation.ui.AppBarConfiguration;
import androidx.navigation.ui.NavigationUI;
import com.astatin3.scoutingapp2025.databinding.ActivityMainBinding;
public class MainActivity extends AppCompatActivity {
private ActivityMainBinding binding;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = ActivityMainBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
BottomNavigationView navView = findViewById(R.id.nav_view);
// Passing each menu ID as a set of Ids because each
// menu should be considered as top level destinations.
AppBarConfiguration appBarConfiguration = new AppBarConfiguration.Builder(
R.id.navigation_home, R.id.navigation_dashboard, R.id.navigation_notifications)
.build();
NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment_activity_main);
NavigationUI.setupActionBarWithNavController(this, navController, appBarConfiguration);
NavigationUI.setupWithNavController(binding.navView, navController);
}
}
@@ -0,0 +1,90 @@
package com.astatin3.scoutingapp2025.ui.dashboard;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.util.TypedValue;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProvider;
import com.astatin3.scoutingapp2025.R;
import com.astatin3.scoutingapp2025.databinding.FragmentDashboardBinding;
public class DashboardFragment extends Fragment {
private FragmentDashboardBinding binding;
private TableLayout Table;
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
DashboardViewModel dashboardViewModel =
new ViewModelProvider(this).get(DashboardViewModel.class);
binding = FragmentDashboardBinding.inflate(inflater, container, false);
View root = binding.getRoot();
Table = binding.matchTable;
warnPopup();
return root;
}
public void warnPopup(){
AlertDialog.Builder alert = new AlertDialog.Builder(getContext());
alert.setMessage("This is an alert with no consequence");
alert.setTitle("App Title");
alert.setPositiveButton("OK", null);
alert.setCancelable(false);
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
showTableLayout();
}
});
alert.create().show();
}
public void showTableLayout(){
// Date date = new Date();
int rows = 200;
int columns = 10;
Table.setStretchAllColumns(true);
Table.bringToFront();
for(int i = 0; i < rows; i++){
TableRow tr = new TableRow(getContext());
Button button = new Button(getContext());
button.setText("test");
tr.addView(button);
TextView text = new TextView(getContext());
text.setTextSize(18);
text.setText("eee");
tr.addView(text);
Table.addView(tr);
}
}
@Override
public void onDestroyView() {
super.onDestroyView();
binding = null;
}
}
@@ -0,0 +1,50 @@
package com.astatin3.scoutingapp2025.ui.dashboard;
import android.graphics.Color;
import android.util.TypedValue;
import android.view.Gravity;
import android.widget.TableRow;
import android.widget.TextView;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
public class DashboardViewModel extends ViewModel {
// private class row {
// public row() {
//
// }
// }
private final MutableLiveData<String> mText;
public DashboardViewModel() {
mText = new MutableLiveData<>();
mText.setValue("This is dashboard fragment");
//
// final TextView row = new TextView(getContext());
//// setContentView()
//
// row.setLayoutParams(new
// TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT,
// TableRow.LayoutParams.WRAP_CONTENT));
//
//// TableLayout list = (TableLayout) this.findViewById(R.id.matchTable);
//// View list = inflater.inflate(inflater, container, findViewById(R.id.toastViewGroup));
//
//
// row.setGravity(Gravity.END);
// row.setTextSize(TypedValue.COMPLEX_UNIT_PX, 10);
// row.setPadding(5, 1, 0, 5);
// row.setTextColor(Color.parseColor("#aaaaaa"));
// row.setBackgroundColor(Color.parseColor("#f8f8f8"));
// row.setText("testing!!");
// .addView(row);
}
public LiveData<String> getText() {
return mText;
}
}
@@ -0,0 +1,38 @@
package com.astatin3.scoutingapp2025.ui.home;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProvider;
import com.astatin3.scoutingapp2025.databinding.FragmentHomeBinding;
public class HomeFragment extends Fragment {
private FragmentHomeBinding binding;
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
HomeViewModel homeViewModel =
new ViewModelProvider(this).get(HomeViewModel.class);
binding = FragmentHomeBinding.inflate(inflater, container, false);
View root = binding.getRoot();
final TextView textView = binding.textHome;
homeViewModel.getText().observe(getViewLifecycleOwner(), textView::setText);
return root;
}
@Override
public void onDestroyView() {
super.onDestroyView();
binding = null;
}
}
@@ -0,0 +1,19 @@
package com.astatin3.scoutingapp2025.ui.home;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
public class HomeViewModel extends ViewModel {
private final MutableLiveData<String> mText;
public HomeViewModel() {
mText = new MutableLiveData<>();
mText.setValue("Testttt");
}
public LiveData<String> getText() {
return mText;
}
}
@@ -0,0 +1,37 @@
package com.astatin3.scoutingapp2025.ui.notifications;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProvider;
import com.astatin3.scoutingapp2025.databinding.FragmentNotificationsBinding;
public class NotificationsFragment extends Fragment {
private FragmentNotificationsBinding binding;
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
NotificationsViewModel notificationsViewModel =
new ViewModelProvider(this).get(NotificationsViewModel.class);
binding = FragmentNotificationsBinding.inflate(inflater, container, false);
View root = binding.getRoot();
final TextView textView = binding.textNotifications;
notificationsViewModel.getText().observe(getViewLifecycleOwner(), textView::setText);
return root;
}
@Override
public void onDestroyView() {
super.onDestroyView();
binding = null;
}
}
@@ -0,0 +1,20 @@
package com.astatin3.scoutingapp2025.ui.notifications;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
public class NotificationsViewModel extends ViewModel {
private final MutableLiveData<String> mText;
public NotificationsViewModel() {
mText = new MutableLiveData<>();
mText.setValue("This is notifications fragment");
}
public LiveData<String> getText() {
return mText;
}
}