package com.example.mirae01.bmsmessenger;
import java.util.ArrayList;
public class MenuSelectActivity extends AppCompatActivity {
private static int PAGE_NUMBER = 3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_menu_select);
TestPagerAdapter mTestPagerAdapter = new TestPagerAdapter(getSupportFragmentManager());
ViewPager mViewPager = (ViewPager) findViewById(R.id.viewpager);
mViewPager.setAdapter(mTestPagerAdapter);
TabLayout mTab = (TabLayout)findViewById(R.id.tabs);
mTab.setupWithViewPager(mViewPager);
}
public class TestPagerAdapter extends FragmentPagerAdapter {
public TestPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
switch (position){
case 0:
return PageOneFragment.newInstance();
case 1:
return PageTwoFragment.newInstance();
case 2:
return PageThreeFragment.newInstance();
default:
return null;
}
}
@Override
public int getCount() {
return PAGE_NUMBER;
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
switch(position) {
case 0:
return "친구 목록";
case 1:
return "대화방 목록";
case 2:
return "대화방 추가";
default:
return null;
}
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_below="@id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
Приведенный выше код работает как мой файл MainActivity.java и файл XML.
package com.example.mirae01.bmsmessenger;
import java.util.ArrayList;
public class PageOneFragment extends Fragment {
ListView myList;
String friendName ="James", friendSentence = "Good day.";
Fadapter myApt;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_page_one, container, false);
myApt = new Fadapter(getActivity().getApplicationContext());
myList = (ListView)rootView.findViewById(R.id.listviewFriend);
myApt.addArray(friendName, friendSentence);
return rootView;
}
public static PageOneFragment newInstance(){ //탭 기능구현 관련 클래스
Bundle args = new Bundle();
PageOneFragment fragment = new PageOneFragment();
fragment.setArguments(args);
return fragment;
}
}
это файл FirstFragment.java.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".PageOneFragment">
<!-- <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="친구 정보"
android:textSize="15dp"
android:layout_gravity="left"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
/>-->
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/listviewFriend">
</ListView>
</LinearLayout>
this above is Firstfragment.xml file.
package com.example.mirae01.bmsmessenger;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.view.LayoutInflater;
import android.widget.TextView;
import java.util.ArrayList;
public class Fadapter extends BaseAdapter {
class MyItem{ //변수의 묶음방식 생성
String friendName, friendSentence;
//Bitmap btmFriendImg; //이미지 구현은 나중에 하자
}
private ArrayList<MyItem> arrItem = new ArrayList<>();
Context context;
public Fadapter(Context c) {
context = c;
}
@Override
public int getCount() {
return arrItem.size();
}
@Override
public Object getItem(int i) {
return arrItem.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View convertView, ViewGroup parent) {
context = parent.getContext();
if(convertView == null){
LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.friendview,parent, false);
}
ImageView friendImg = (ImageView)convertView.findViewById(R.id.friendImg); // 화면에 표시될 View(Layout이 inflate된)으로부터 위젯에 대한 참조 획득
TextView txFriendName = (TextView)convertView.findViewById(R.id.txFriendName);
TextView txFriendSentence = (TextView)convertView.findViewById(R.id.txfriendSentence);
MyItem item = arrItem.get(i); //arrItem에서 i번째 값들을 받아서 MyItem 방식의 item에 저장.
friendImg.setImageResource(R.drawable.ic_launcher_foreground); //나중에 이미지를 서버에서 받는 법을 배워서 수정하자!!
txFriendName.setText(item.friendName);
txFriendSentence.setText(item.friendSentence);
return convertView;
}
public void addArray(String AddfriendName, String AddfriendSentence){ //예시로 만든, 에 값을 넣어주는 클래스
MyItem tmpItem = new MyItem();
tmpItem.friendName = AddfriendName;
tmpItem.friendSentence = AddfriendSentence;
arrItem.add(tmpItem);
}
}
это файл адаптера Java.
Я сделал MainActivity.java
файл и XML, и я сделал 3 фрагмента Java-файлов и функцию табуляции, и я вставил widget.ListView
в первый фрагмент, и сделал Java-файл (для функции адаптера), но я получаю ошибка при вставке widget.listView
в первый фрагмент. Как я могу решить эту проблему?