arraylist에서 데이터를 취하는 listview 및 사용자 정의 배열 어댑터를 사용하여 활동을 실행하려고하면 응용 프로그램이 강제 종료됩니다. 여기 Android : 맞춤 배열 어댑터에 문제가 발생했습니다. Force Close
public class TopAreaFeed extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.top_area_feed_activity);
getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
getActionBar().setCustomView(R.layout.abs_layout);
ActionBar topAreaFeedBar = getActionBar();
topAreaFeedBar.setBackgroundDrawable(new ColorDrawable(Color.RED));
topAreaFeedBar.setDisplayShowTitleEnabled(false);
topAreaFeedBar.setDisplayShowTitleEnabled(true);
ArrayList<Post> posts = Post.getPosts();
PostAdapter postAdapter = new PostAdapter(TopAreaFeed.this, posts);
ListView postListView = (ListView) findViewById(R.id.listView1);
postListView.setAdapter(postAdapter);
}
public boolean onCreateOptionsMenu(Menu menu){
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_viewer_actions, menu);
return super.onCreateOptionsMenu(menu);
}
public void openComposeAction(){
Intent composeIntent = new Intent(this, ComposePost.class);
startActivity(composeIntent);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle presses on the action bar items
switch (item.getItemId()) {
case R.id.action_write_post:
openComposeAction();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}
내 정의되는 listItem이다 내가 내 목록보기에 포스트 어댑터를 구현하는 활동 클래스
import java.util.ArrayList;
import com.anshikka.solvexxx.R;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageButton;
import android.widget.TextView;
public class PostAdapter extends ArrayAdapter<Post> {
private static class ViewHolder {
TextView userName;
TextView postContent;
TextView timeStamp;
ImageButton upVote;
ImageButton downVote;
TextView voteAmount;
}
public PostAdapter(Context context, ArrayList<Post> posts){
super(context, 0, posts);
}
public View getView(int position, View convertView, ViewGroup parent){
final Post post = getItem(position);
ViewHolder viewHolder;
if(convertView == null){
viewHolder = new ViewHolder();
LayoutInflater inflater = LayoutInflater.from(getContext());
convertView = inflater.inflate(R.layout.solution_list_layout, parent, false);
viewHolder.userName = (TextView) convertView.findViewById(R.id.userName);
viewHolder.postContent = (TextView) convertView.findViewById(R.id.post);
viewHolder.timeStamp = (TextView) convertView.findViewById(R.id.timestamp);
viewHolder.upVote = (ImageButton) convertView.findViewById(R.id.upVoteButton);
viewHolder.downVote = (ImageButton) convertView.findViewById(R.id.downVoteButton);
viewHolder.voteAmount = (TextView) convertView.findViewById(R.id.voteAmount);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.userName.setText(post.getPostAuthor());
viewHolder.postContent.setText(post.getPostContent());
viewHolder.timeStamp.setText(post.getPostDate());
viewHolder.upVote.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
post.voteUp();
}
});
viewHolder.downVote.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
post.voteDown();
}
});
viewHolder.voteAmount.setText(post.getPostVotes());
return convertView;
}
} 여기
됩니다 : 여기
사용자 정의 배열 어댑터 코드<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white_overlay" >
<TextView
android:id="@+id/userName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/imageView1"
android:layout_toRightOf="@+id/imageView1"
android:textStyle="bold"
android:text="@string/userNameGoesHere"
android:textAppearance="?android:attr/textAppearanceSmall" />
<ImageView
android:id="@+id/profilePic"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:src="@drawable/user" />
<TextView
android:id="@+id/timestamp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/imageButton1"
android:layout_alignParentLeft="true"
android:text="@string/sampleTimeStamp"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/black_overlay"
android:textSize="12sp" />
<ImageButton
android:id="@+id/upVoteButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/imageButton1"
android:layout_toLeftOf="@+id/imageButton1"
android:focusable="false"
android:focusableInTouchMode="false"
android:src="@android:drawable/arrow_up_float" />
<ImageButton
android:id="@+id/downVoteButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="@+id/post"
android:layout_marginRight="20dp"
android:layout_marginTop="14dp"
android:focusable="false"
android:focusableInTouchMode="false"
android:src="@android:drawable/arrow_down_float" />
<TextView
android:id="@+id/voteAmount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/imageButton2"
android:layout_below="@+id/imageButton2"
android:layout_marginLeft="21dp"
android:text="@string/sampleUpVoteCount"
android:textAppearance="?android:attr/textAppearanceSmall" />
</RelativeLayout>
,363,210
스택 트레이스 : 당신이 당신의 어댑터 getView()
에 텍스트 뷰하는 int 값을 설정처럼
07-08 11:31:17.167: E/AndroidRuntime(8731): FATAL EXCEPTION: main
07-08 11:31:17.167: E/AndroidRuntime(8731): Process: com.anshikka.solvexxx, PID: 8731
07-08 11:31:17.167: E/AndroidRuntime(8731): android.content.res.Resources$NotFoundException: String resource ID #0x0
07-08 11:31:17.167: E/AndroidRuntime(8731): at android.content.res.Resources.getText(Resources.java:268)
07-08 11:31:17.167: E/AndroidRuntime(8731): at android.widget.TextView.setText(TextView.java:3923)
07-08 11:31:17.167: E/AndroidRuntime(8731): at com.anshikka.solvestream.PostAdapter.getView(PostAdapter.java:65)
07-08 11:31:17.167: E/AndroidRuntime(8731): at android.widget.AbsListView.obtainView(AbsListView.java:2333)
07-08 11:31:17.167: E/AndroidRuntime(8731): at android.widget.ListView.makeAndAddView(ListView.java:1854)
07-08 11:31:17.167: E/AndroidRuntime(8731): at android.widget.ListView.fillDown(ListView.java:698)
07-08 11:31:17.167: E/AndroidRuntime(8731): at android.widget.ListView.fillFromTop(ListView.java:759)
07-08 11:31:17.167: E/AndroidRuntime(8731): at android.widget.ListView.layoutChildren(ListView.java:1673)
07-08 11:31:17.167: E/AndroidRuntime(8731): at android.widget.AbsListView.onLayout(AbsListView.java:2145)
07-08 11:31:17.167: E/AndroidRuntime(8731): at android.view.View.layout(View.java:15273)
07-08 11:31:17.167: E/AndroidRuntime(8731): at android.view.ViewGroup.layout(ViewGroup.java:4763)
07-08 11:31:17.167: E/AndroidRuntime(8731): at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1069)
07-08 11:31:17.167: E/AndroidRuntime(8731): at android.view.View.layout(View.java:15273)
07-08 11:31:17.167: E/AndroidRuntime(8731): at android.view.ViewGroup.layout(ViewGroup.java:4763)
07-08 11:31:17.167: E/AndroidRuntime(8731): at android.widget.FrameLayout.layoutChildren(FrameLayout.java:457)
07-08 11:31:17.167: E/AndroidRuntime(8731): at android.widget.FrameLayout.onLayout(FrameLayout.java:392)
07-08 11:31:17.167: E/AndroidRuntime(8731): at android.view.View.layout(View.java:15273)
07-08 11:31:17.167: E/AndroidRuntime(8731): at android.view.ViewGroup.layout(ViewGroup.java:4763)
07-08 11:31:17.167: E/AndroidRuntime(8731): at com.android.internal.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:494)
07-08 11:31:17.167: E/AndroidRuntime(8731): at android.view.View.layout(View.java:15273)
07-08 11:31:17.167: E/AndroidRuntime(8731): at android.view.ViewGroup.layout(ViewGroup.java:4763)
07-08 11:31:17.167: E/AndroidRuntime(8731): at android.widget.FrameLayout.layoutChildren(FrameLayout.java:457)
07-08 11:31:17.167: E/AndroidRuntime(8731): at android.widget.FrameLayout.onLayout(FrameLayout.java:392)
07-08 11:31:17.167: E/AndroidRuntime(8731): at android.view.View.layout(View.java:15273)
07-08 11:31:17.167: E/AndroidRuntime(8731): at android.view.ViewGroup.layout(ViewGroup.java:4763)
07-08 11:31:17.167: E/AndroidRuntime(8731): at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2057)
07-08 11:31:17.167: E/AndroidRuntime(8731): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1814)
07-08 11:31:17.167: E/AndroidRuntime(8731): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1044)
07-08 11:31:17.167: E/AndroidRuntime(8731): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5749)
07-08 11:31:17.167: E/AndroidRuntime(8731): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
07-08 11:31:17.167: E/AndroidRuntime(8731): at android.view.Choreographer.doCallbacks(Choreographer.java:580)
07-08 11:31:17.167: E/AndroidRuntime(8731): at android.view.Choreographer.doFrame(Choreographer.java:550)
07-08 11:31:17.167: E/AndroidRuntime(8731): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
07-08 11:31:17.167: E/AndroidRuntime(8731): at android.os.Handler.handleCallback(Handler.java:738)
07-08 11:31:17.167: E/AndroidRuntime(8731): at android.os.Handler.dispatchMessage(Handler.java:95)
07-08 11:31:17.167: E/AndroidRuntime(8731): at android.os.Looper.loop(Looper.java:135)
07-08 11:31:17.167: E/AndroidRuntime(8731): at android.app.ActivityThread.main(ActivityThread.java:5070)
07-08 11:31:17.167: E/AndroidRuntime(8731): at java.lang.reflect.Method.invoke(Native Method)
07-08 11:31:17.167: E/AndroidRuntime(8731): at java.lang.reflect.Method.invoke(Method.java:372)
07-08 11:31:17.167: E/AndroidRuntime(8731): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:836)
07-08 11:31:17.167: E/AndroidRuntime(8731): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:631)
스택 트레이스 – Raghunandan
게시 위치는 어디입니까? 나는 안드로이드 프로그래밍에 상당히 익숙하다. – user3701380
logcat. 예외 부분을 여기에 게시하십시오 – Raghunandan