رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

مشکل در طراحی برنامه اندروید


پست های پیشنهاد شده

سلام

من در حال یادگیری برنامه نویسی اندروید هستم،

و از طریق اموزش زیر یک برنامه رو دارم مینویسم:

http://goo.gl/ONulua

حالا من این کدهایی که برنامه داده رو پشت سر هم میزارم، اما جواب نمیده، چطوری باید اینها رو بچینم؟

We want to replace the “Hello AndroidPIT!” with our RSS Feed. In order to do this, we to give [b]TextView[/b] an identifier on what we want it to show. In this case, the android: id attribute will do the trick:
      android:id="@+id/rss_feed"
      android:text="@string/hello_world"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content" />After we provide the [b]Textview [/b]with an [b]id[/b], we have to find the ones we want to use and an add them to our [b]Placeholder fragment[/b] segment. For this purpose we use the method [b]findViewById[/b]. It should like this within the [b]onCreateView[/b] method:
@Override
      public View onCreateView(LayoutInflater inflater, ViewGroup container,
              Bundle savedInstanceState) {
          View rootView = inflater.inflate(R.layout.fragment_main, container, false);
          mRssFeed = (TextView) rootView.findViewById(R.id.rss_feed);
          return rootView;
      }To retrieve the RSS feed at the start of the app, we need the following [b]onStart[/b] method:
@Override
      public void onStart() {
          super.onStart();
          InputStream in = null;
          try {
              URL url = new URL("http://www.androidpit.com/feed/main.xml");
              HttpURLConnection conn = (HttpURLConnection) url.openConnection();
              in = conn.getInputStream();
              ByteArrayOutputStream out = new ByteArrayOutputStream();
              byte[] buffer = new byte[1024];
              for (int count; (count = in.read(buffer)) != -1; ) {
                  out.write(buffer, 0, count);
              }
              byte[] response = out.toByteArray();
              String rssFeed = new String(response, "UTF-8");
              mRssFeed.setText(rssFeed);
          } catch (IOException e) {
              e.printStackTrace();
          } finally {
              if (in != null) {
                  try {
                      in.close();
                  } catch (IOException e) {
                      e.printStackTrace();
                  }
              }
          }
      }If you don’t understand the source code, don’t worry 
and just copy and paste what we’ve done. To understand it in depth, 
you’ll need to take up Java and learn the programming language.
If you try running the app right now, it will begin to compile but will crash at some point.
In app development, it is necessary that you can learn how to deal with crashes and what exactly they mean. If you open [b]logcat[/b]
at the same time as you run your application, it will log all the 
messages and error messages output by the application. If you do it 
after running what we’ve done so far, you should have the following 
error message:
com.rockylabs.androidpitrss E/AndroidRuntime﹕ FATAL EXCEPTION: main
   Process: com.rockylabs.androidpitrss, PID: 14367
   java.lang.RuntimeException: Unable to start activity ComponentInfo{com.rockylabs.androidpitrss/com.rockylabs.androidpitrss.MainActivity}:
android.os.NetworkOnMainThreadExceptionSo,
what happened? Your application tried in the main thread to access the 
Internet, however, if the request takes too long, the application stops 
responding and an error message is issued. To avoid this, Android has 
been rigged to crash instead of hang indefinitely.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

خوب شما کاملا داری اشتباه عمل می کنی. تو برنامه نویسی اندروید کدهای برنامه به دو دسته تقسیم میشن: کدهای ظاهر برنامه (UI یا xml) و کدهای جاوا که در واقع عملکرد UI رو مشخص می کنه. تو نمونه کد شما، این طور که من دارم می بینم این دو تا با هم غاطی شدن. شما باید این دو تا رو از هم جدا کنید.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

خوب شما کاملا داری اشتباه عمل می کنی. تو برنامه نویسی اندروید کدهای برنامه به دو دسته تقسیم میشن: کدهای ظاهر برنامه (UI یا xml) و کدهای جاوا که در واقع عملکرد UI رو مشخص می کنه. تو نمونه کد شما، این طور که من دارم می بینم این دو تا با هم غاطی شدن. شما باید این دو تا رو از هم جدا کنید.

سپاس از شما بابت راهنمایی،

ممکنه کمی راهنمایی کنید که بتونم اینها رو از هم جدا کنم؟

لطفا پیغام خصوصیتون رو هم چک کنید

ارادتمند:heart:

لینک ارسال
به اشتراک گذاری در سایت های دیگر

دوست عزیز فکر کنم به زبان انگلیسی زیاد تسلط ندارین، چون در قسمت Description آموزشتون موارد رو کمی توضیح داده!

توصیه میکنم اگر در اول راه هستید و به زبان انگلیسی هم تسلط کافی را ندارید از آموزش های فارسی شروع کنید

آموزش های فارسی زیادی در این 1-2 سال اخیر در اینترنت به وفور یافت میشن

موفق و سربلند باشید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

دوست عزیز فکر کنم به زبان انگلیسی زیاد تسلط ندارین، چون در قسمت Description آموزشتون موارد رو کمی توضیح داده!

توصیه میکنم اگر در اول راه هستید و به زبان انگلیسی هم تسلط کافی را ندارید از آموزش های فارسی شروع کنید

آموزش های فارسی زیادی در این 1-2 سال اخیر در اینترنت به وفور یافت میشن

موفق و سربلند باشید

به زبان انگلیسی تسلط مناسبی دارم

اما برنامه نویسی دونستن زبان انگلیسی یکی از بخش هاش هست، برای همین است که کمکی از دوستان خواستم،

میشه بگید در قسمت description چی دیدی که در مورد جدا کردن UI از XML توضیح داده باشه؟

ممنون از شما و description شما :P

لینک ارسال
به اشتراک گذاری در سایت های دیگر

دوست عزیز

باید یه اکتیویتی تو برنامه ایجاد کنی. با ایجاد اکتیویتی یه فایل با پسوند xml. و یه فایل با پسوند java. ایجاد میشه. باید کدهای مربوط به xml رو تو فایل xml. و کدهای مربوط به جاوا رو توی فایل java. قرار بدی، به عنوان مثال به این شکل:

کدهای xml:

android:id="@+id/rss_feed"

android:text="@string/hello_world"

android:layout_width="wrap_content"

android:layout_height="wrap_content" />

کدهای java:

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container,

Bundle savedInstanceState) {

View rootView = inflater.inflate(R.layout.fragment_main, container, false);

mRssFeed = (TextView) rootView.findViewById(R.id.rss_feed);

return rootView;

}

@Override

public void onStart() {

super.onStart();

InputStream in = null;

try {

URL url = new URL("http://www.androidpit.com/feed/main.xml");

HttpURLConnection conn = (HttpURLConnection) url.openConnection();

in = conn.getInputStream();

ByteArrayOutputStream out = new ByteArrayOutputStream();

byte[] buffer = new byte[1024];

for (int count; (count = in.read(buffer)) != -1; ) {

out.write(buffer, 0, count);

}

byte[] response = out.toByteArray();

String rssFeed = new String(response, "UTF-8");

mRssFeed.setText(rssFeed);

} catch (IOException e) {

e.printStackTrace();

} finally {

if (in != null) {

try {

in.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

لینک ارسال
به اشتراک گذاری در سایت های دیگر

از دوستان کی میتونه با پرداخت هزینه این برنامه رو بهم آموزش بده؟

دقیقا ساختن همین برنامه، توسط همین آموزش دقیقا، نه زبون جاوا رو

با تشکر

لینک ارسال
به اشتراک گذاری در سایت های دیگر

از دوستان کی میتونه با پرداخت هزینه این برنامه رو بهم آموزش بده؟

دقیقا ساختن همین برنامه، توسط همین آموزش دقیقا، نه زبون جاوا رو

با تشکر

زکات علم به نشر آن است! 

شما یه ایمیل به بنده بزن ! در حد توانم کمک میکنم! 

[email protected]

من گشتم تو انجمن صفحه قوانین پیدا نکردم ! اگه درج ایمیل خلافه ! من خلاف کار نیستم همینجا پیام بده!

لینک ارسال
به اشتراک گذاری در سایت های دیگر

از دوستان کی میتونه با پرداخت هزینه این برنامه رو بهم آموزش بده؟

دقیقا ساختن همین برنامه، توسط همین آموزش دقیقا، نه زبون جاوا رو

با تشکر

زکات علم به نشر آن است! 

شما یه ایمیل به بنده بزن ! در حد توانم کمک میکنم! 

[email protected]

من گشتم تو انجمن صفحه قوانین پیدا نکردم ! اگه درج ایمیل خلافه ! من خلاف کار نیستم همینجا پیام بده!

سلام

براتون ایمیل فرستادم.

با تشکر

لینک ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...