이것은 제 3 번째 앱입니다.이 작업을 수행하기에는 너무 야심적입니다. 나에게 어떤 이름으로 listview
을 표시하고 클릭하면 imageview
을 변경하는 앱은 URL에서 검색합니다. 또한 슬라이드를 스크리닝하고 방금 설명한 "템플릿"을 더 많이 보여줄 수 있습니다. 여기 내가 대부분의 문제를 가진 곳입니다.null 포인터 예외, 작업 표시 줄 활동 및 단편
해결 {
내 로그 캣는 말한다 :
05-13 23:20:38.516: E/AndroidRuntime(687): java.lang.RuntimeException:
Unable to instantiate activity ComponentInfo{com.example.test2/
com.example.test2.ScreenSlideActivity}: java.lang.NullPointerException
}
이 보여주는 중지 listview
에 클릭에
새로운 문제 :
05-13 23:51:46.751: E/AndroidRuntime(782): java.lang.RuntimeException: An error occured while executing doInBackground()
05-13 23:51:46.751: E/AndroidRuntime(782): at android.os.AsyncTask$3.done(AsyncTask.java:299)
주요 활동
public class ScreenSlideActivity extends ActionBarActivity {
SectionsPagerAdapter mSectionsPagerAdapter;
ViewPager mViewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_screen_slide);
mSectionsPagerAdapter = new SectionsPagerAdapter(
getSupportFragmentManager());
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(mSectionsPagerAdapter);
}
public class SectionsPagerAdapter extends FragmentPagerAdapter {
public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return PlaceholderFragment.newInstance(position);
}
@Override
public int getCount() {
return 6;
}
}
public static class PlaceholderFragment extends Fragment {
private static final String ARG_SECTION_NUMBER = "section_number";
public static PlaceholderFragment newInstance(int sectionNumber) {
PlaceholderFragment fragment = new PlaceholderFragment();
Bundle args = new Bundle();
args.putInt(ARG_SECTION_NUMBER, sectionNumber);
fragment.setArguments(args);
return fragment;
}
public PlaceholderFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_screen_slide,
container, false);
String[] ponies = getResources().getStringArray(R.array.ponies);
String[] poniesurl=getResources().getStringArray(R.array.poniesimg);
final ArrayList<String> listurl = new ArrayList<String>();
ListView listview = (ListView) rootView.findViewById(R.id.lista);
ArrayList<String> list = new ArrayList<String>();
for (int i = 0; i < ponies.length; ++i) {
list.add(ponies[i]);
listurl.add(poniesurl[i]);
}
ArrayAdapter<String> arrayAdapter =
new ArrayAdapter<>(getActivity().getApplicationContext()
,android.R.layout.simple_list_item_1,list);
listview.setAdapter(arrayAdapter);
listview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
String selectedPonyURL=listurl.get(position);
new ScreenSlideActivity().new DownloadImagesTask().execute(selectedPonyURL);
}
});
return rootView;
}
}
class DownloadImagesTask extends AsyncTask<String, Void, Bitmap> {
protected Bitmap doInBackground(String... data) {
String thumb = data[0];
Bitmap bitmap = null;
try {
Log.d("TEST", "do in background");
bitmap = BitmapFactory
.decodeStream((InputStream) new URL(thumb).getContent());
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return bitmap;
}
@Override
protected void onPostExecute(Bitmap img) {
Log.d("TEST", "post execute");
ImageView mChart = (ImageView) findViewById(R.id.imageView1);
mChart.setImageBitmap(img);
}}
}
내 레이아웃
activiy_screen_slide.xml
<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.test2.ScreenSlideActivity" />
fragment_screen_slide.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<ImageView
android:id="@+id/imageView1"
android:paddingTop="10dp"
android:layout_width="wrap_content"
android:layout_height="200dip"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:src="@drawable/ic_launcher" />
<ListView
android:id="@+id/lista"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/button1"
android:layout_alignParentLeft="true"
android:layout_below="@+id/imageView1" >
</ListView>
</RelativeLayout>
내 목록
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="ponies">
<item>Rainbow Dash</item>
<item>Apple Jack</item>
<item>Rarity</item>
<item>Pinkie Pie</item>
<item>Twilight Sparkle</item>
<item>Fluttershy</item>
</string-array>
<array name="poniesimg">
<item>http://fc08.deviantart.net/fs71/f/2012/087/d/e/rainbow_dash_icon_request_by_megasuperheavy-d4u76ht.png</item>
<item>https://www.fimfiction-static.net/images/avatars/28886_256.jpg?1336013578</item>
<item>http://www.fimfiction-static.net/images/avatars/139363_256.jpg?1382473406</item>
<item>https://lh6.googleusercontent.com/-fPQ-TEfk9RE/AAAAAAAAAAI/AAAAAAAAAD4/W_oT9Nz5MpY/photo.jpg</item>
<item>https://pbs.twimg.com/profile_images/431214974363385856/GAmxwTe-.png</item>
<item>http://files.gamebanana.com/img/ico/sprays/515cc647f37a4.png</item>
</array>
</resources>
저는 이것이 프랑켄슈타인 (Frankenstein)이라는 것을 알고 있습니다. 몇 가지 예와 제안을 정말 고맙게 생각합니다. 감사합니다
나머지 logcat 출력을 추가 할 수 있습니까? – user184994
'ImageView mChart = (ImageView) findViewById (R.id.imageView1);'활동/fagment의 내용을 설정하기 전에'mChart'를 초기화하지 마십시오. – Onik
mChart 문제에 대한 감사 인사 :) – user3610155