Skip to content

Commit

Permalink
Merge pull request #9 from Taehyuny/main
Browse files Browse the repository at this point in the history
set spinner and search editText at actionbar and implemented preference
  • Loading branch information
Aftermoon-dev committed Apr 28, 2021
2 parents 3135ad4 + 7b9ca1d commit d6bf077
Show file tree
Hide file tree
Showing 14 changed files with 355 additions and 6 deletions.
116 changes: 116 additions & 0 deletions .idea/codeStyles/Project.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/inspectionProfiles/Project_Default.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ dependencies {
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'com.google.android.material:material:1.3.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'

// Test
testImplementation 'junit:junit:4.+'
Expand Down
6 changes: 5 additions & 1 deletion app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,11 @@
android:theme="@style/Theme.GBro.Splash" >
</activity>

<activity android:name=".MainActivity" />
<activity android:name=".SettingActivity"
android:theme="@style/Theme.GBro.Splash">
</activity>

<activity android:name=".MainActivity"></activity>
</application>

</manifest>
36 changes: 33 additions & 3 deletions app/src/main/java/kr/ac/gachon/sw/gbro/MainActivity.java
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
package kr.ac.gachon.sw.gbro;

import android.content.Intent;
import android.content.res.Configuration;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Spinner;
import android.widget.Toast;

import androidx.annotation.NonNull;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.widget.Toolbar;
import androidx.fragment.app.FragmentManager;

import com.sothree.slidinguppanel.SlidingUpPanelLayout;
Expand All @@ -20,7 +24,6 @@
public class MainActivity extends BaseActivity<ActivityMainBinding> {
long lastPressedTime = 0;
long backPressedTime = 2000;

@Override
protected ActivityMainBinding getBinding() {
return ActivityMainBinding.inflate(getLayoutInflater());
Expand All @@ -30,6 +33,7 @@ protected ActivityMainBinding getBinding() {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setFragment();
setSpinner();
setSlidingPanel();
setFab();
}
Expand Down Expand Up @@ -84,7 +88,12 @@ private void setFragment() {
*/
private void setSlidingPanel() {
SlidingUpPanelLayout slidingUpPanelLayout = binding.mainpanel;

Toolbar toolbar = binding.toolBar;
setSupportActionBar(toolbar);
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayShowCustomEnabled(true); // 커스터마이징 하기 위해 필요
actionBar.setDisplayShowTitleEnabled(false);
actionBar.hide();

slidingUpPanelLayout.addPanelSlideListener(new SlidingUpPanelLayout.PanelSlideListener() {
Expand All @@ -97,11 +106,11 @@ public void onPanelSlide(View panel, float slideOffset) {
public void onPanelStateChanged(View panel, SlidingUpPanelLayout.PanelState previousState, SlidingUpPanelLayout.PanelState newState) {
// If Close
if(newState == SlidingUpPanelLayout.PanelState.COLLAPSED) {
if(actionBar != null) actionBar.hide();
if(actionBar != null) actionBar.hide();
}
// If Open
else if(newState == SlidingUpPanelLayout.PanelState.EXPANDED) {
if(actionBar != null) actionBar.show();
if(actionBar != null) actionBar.show();
}
}
});
Expand All @@ -120,7 +129,28 @@ private void setFab() {

// 설정 버튼
binding.fabSetting.setOnClickListener(v -> {
Intent intent = new Intent(MainActivity.this, SettingActivity.class);
startActivity(intent);
Toast.makeText(this, "설정 버튼입니다", Toast.LENGTH_SHORT).show();
});
}

/*
* Spinner 리스너 처리
* @author Taehyun Park
* @return Void
*/
private void setSpinner(){
// 특정 아이템이 선택된다면 발생하는 이벤트
binding.spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long l) {
Toast.makeText(getApplicationContext(),parent.getItemAtPosition(position)+" 게시물 목록입니다.",Toast.LENGTH_LONG).show();
}

@Override
public void onNothingSelected(AdapterView<?> adapterView) {}
});
}

}
15 changes: 15 additions & 0 deletions app/src/main/java/kr/ac/gachon/sw/gbro/SettingActivity.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package kr.ac.gachon.sw.gbro;

import android.os.Bundle;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

public class SettingActivity extends AppCompatActivity {

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_setting);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
package kr.ac.gachon.sw.gbro;

import android.app.AlertDialog;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.ListPreference;
import android.preference.PreferenceFragment;
import android.preference.PreferenceManager;


public class SettingPreferenceFragment extends PreferenceFragment {

SharedPreferences prefs;

ListPreference productPreference;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

addPreferencesFromResource(R.xml.settings_preference);
productPreference = (ListPreference)findPreference("found_list");

prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());

if(!prefs.getString("found_list","").equals("")){
productPreference.setSummary(prefs.getString("found_list","습득물 선택"));
}

// 값 변경 시 바뀜 감지
prefs.registerOnSharedPreferenceChangeListener(prefLinstener);

// 로그아웃 이벤트 리스너
Preference myPref_logout = (Preference)findPreference("log_out");
myPref_logout.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("로그아웃");
builder.setMessage("정말로 로그아웃하시겠습니까?");
builder.setPositiveButton("예",null);
builder.setNegativeButton("아니오", null);
builder.setNeutralButton("취소",null);
builder.create().show();
return false;
}
});

// 회원탈퇴 이벤트 리스너
Preference myPref_withdraw_member = (Preference)findPreference("withdraw_member");
myPref_withdraw_member.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("회원탈퇴");
builder.setMessage("정말로 회원을 탈퇴하시겠습니까?");
builder.setPositiveButton("예",null);
builder.setNegativeButton("아니오", null);
builder.setNeutralButton("취소",null);
builder.create().show();
return false;
}
});

}

// 값 변경 시 바뀜 감지 리스너 지정
SharedPreferences.OnSharedPreferenceChangeListener prefLinstener = new SharedPreferences.OnSharedPreferenceChangeListener() {
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
if(key.equals("found_list")){
productPreference.setSummary(prefs.getString("found_list","습득물 선택"));
}
}
};


}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.widget.Toolbar;
import androidx.recyclerview.widget.LinearLayoutManager;

import com.google.firebase.Timestamp;
Expand All @@ -16,6 +18,8 @@
import java.util.Date;
import java.util.Random;

import kr.ac.gachon.sw.gbro.MainActivity;
import kr.ac.gachon.sw.gbro.R;
import kr.ac.gachon.sw.gbro.base.BaseFragment;
import kr.ac.gachon.sw.gbro.databinding.FragmentBoardBinding;
import kr.ac.gachon.sw.gbro.util.model.Post;
Expand Down Expand Up @@ -53,7 +57,6 @@ private void setAdapter() {
}

Log.d("BoardFragment", "postList Size : " + postList.size());

binding.rvBoard.setHasFixedSize(true);
binding.rvBoard.setLayoutManager(new LinearLayoutManager(getActivity()));

Expand Down
23 changes: 23 additions & 0 deletions app/src/main/res/layout/activity_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,28 @@
tools:context=".MainActivity"
android:orientation="vertical" >

<androidx.appcompat.widget.Toolbar
app:layout_constraintTop_toTopOf="parent"
android:id="@+id/tool_bar"
android:layout_width="wrap_content"
android:layout_height="wrap_content">

<Spinner
android:id="@+id/spinner"
android:entries="@array/게시물분류"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>

<EditText
android:id="@+id/searchname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="@string/search_hint"
/>

</androidx.appcompat.widget.Toolbar>

<com.sothree.slidinguppanel.SlidingUpPanelLayout
android:id="@+id/mainpanel"
android:layout_width="match_parent"
Expand Down Expand Up @@ -42,6 +64,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>

</com.sothree.slidinguppanel.SlidingUpPanelLayout>

<com.getbase.floatingactionbutton.FloatingActionsMenu
Expand Down
Loading

0 comments on commit d6bf077

Please sign in to comment.