ListView를 대용해 사용가능한 RecyclerView

CardView, 가로 스크롤, 세로 스크롤 등 활용도가 높음


1.xml

layout의 원하는 위치에 Recyclerview를 넣는다.

<android.support.v7.widget.RecyclerView
android:id="@+id/list_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/transparent"></android.support.v7.widget.RecyclerView>


2. 초기화

public class TestActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {

RecyclerView listView = (RecyclerView) view.findViewById(R.id.list_view);
LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL); // horizonta, vertical 옵션에 따라 가로/세로 list
listView.setHasFixedSize(true);
listView.setLayoutManager(layoutManager);

TestAdapter adapter = new TestAdapter(getActivity(), R.layout.row_item, testarrayList);
listView.setAdapter(adapter);

}
}


3. Adapter

class TestAdapter extends RecyclerView.Adapter<TestAdapter.ViewHolder> {
private final int resource;
private Context context;
private List<String> list;

public TestAdapter(Context context, @AnyRes int resource, List<String> list) {
this.resource = resource;
this.context = context;
this.list = list;
}

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(resource, null);

return new ViewHolder(view);
}

@Override
public void onBindViewHolder(ViewHolder holder, int position) {
final String item = getItem(position);

holder.title.setText(item);

}

@Override
public int getItemCount() {
return list.size();
}

private String getItem(int position) {
return list.get(position);
}

public void clear() {
if(null != list) {
list.clear();
}
}

public void addAll(List<String> list) {
this.list = list;
notifyDataSetChanged();
}

public class ViewHolder extends RecyclerView.ViewHolder {
public final TextView title;

public ViewHolder(View parent) {
super(parent);


title= (TextView) parent.findViewById(R.id.title);
}
}
}

 

'안드로이드' 카테고리의 다른 글

db -> px 단위 변경  (0) 2017.03.06
안드로이드 내부 저장소 용량 구하기  (0) 2017.03.06
공유 가능 앱 리스트 가져오기  (0) 2017.03.06
안드로이드 앱의 cpu 사용량 구하기  (0) 2017.03.06
AsyncTask  (0) 2011.09.06

안드로이드 공유하기에 흔히 사용하는 Intent.

공유하기 팝업을 커스텀 하고 싶을 때 list만 가져와서 dialog를 만들면 된다.


Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("text/plain");

List<ResolveInfo> resolveInfoList = context.getPackageManager().queryIntentActivities(shareIntent, 0);


​앱 선택 시 처리


ResolveInfo resolveInfo = resolveInfoList.get(selectPosition);
ActivityInfo activityInfo = resolveInfo.activityInfo;

ComponentName name = new ComponentName(activityInfo.applicationInfo.packageName, activityInfo.name);
shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
shareIntent.setComponent(name);

//TODO ssok by 추후 공유 메시지, url 변경 필요
shareIntent.putExtra(Intent.EXTRA_TEXT, "공유하고자 하는 문구");

startActivity(shareIntent);

 

'안드로이드' 카테고리의 다른 글

안드로이드 내부 저장소 용량 구하기  (0) 2017.03.06
안드로이드 RecyclerView 사용하기 예제  (0) 2017.03.06
안드로이드 앱의 cpu 사용량 구하기  (0) 2017.03.06
AsyncTask  (0) 2011.09.06
AppWidget  (0) 2011.07.28

안드로이드 앱의 cpu 사용량 구하기. 코드

            ActivityManager activity_manager = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> runningApps = activity_manager.getRunningAppProcesses();
Runtime runtime = Runtime.getRuntime();
Process process;
try {
String cmd = "top -n 1";
process = runtime.exec(cmd);
InputStream inputStream = process.getInputStream();
InputStreamReader inputReader = new InputStreamReader(inputStream );
BufferedReader bufferReader = new BufferedReader(inputReader );
String line;

while ((line = bufferReader.readLine()) != null) {
String[] segs = line.trim().split("[ ]+");

for (int i = 0; i < runningApps.size(); i++) {
if (segs[0].equalsIgnoreCase(String.valueOf(runningApps.get(i).pid))) { <--하나의 process의 cpu만 확인하고 싶은 경우 for문을 제외하고, pid값에 원하는 process의 pid 값을 넣어 확인.
cpuAvail += Integer.parseInt(segs[2].replace("%", "")); <-- 현재 사용중인 프로세스들의 총 cpu 사용량을 구하기 위한 합.
// break;
}
}
}

} catch (Exception e) {
e.printStackTrace();
return 0;
}

 

 

'안드로이드' 카테고리의 다른 글

안드로이드 RecyclerView 사용하기 예제  (0) 2017.03.06
공유 가능 앱 리스트 가져오기  (0) 2017.03.06
AsyncTask  (0) 2011.09.06
AppWidget  (0) 2011.07.28
Broadcast Receiver  (0) 2011.07.26

+ Recent posts