ورود

View Full Version : مشکل در اجرای اسپلش اسکرین (همراه با سورس)



Apriliyaa
جمعه 09 آبان 1393, 08:36 صبح
آقا ما هر کاری کردیم این اسپلش اسکرین ما نیومد که نیومد!

این سور مین جاوای ما هست
یه بررسی کنید ممنون میشم :

package com.example.gilan;


import android.app.Activity;
import android.app.ListActivity;


import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;




public class Main extends ListActivity {




String[] str = {"0","1","2",};



public class splash extends Activity {


Thread timer;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.spl);
timer=new Thread(){
public void run ( ){

try {
sleep(2000);
}
catch(InterruptedException e) {

e.printStackTrace();
}
finally
{

Intent nn=new Intent(Main.this, Sp.class);
startActivity(nn);

}
}

};
timer.start();

}

}




@Override




protected void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, position, id);

switch (position) {
case 0:
startActivity(new Intent(Main.this, M0.class));

break;
case 1:
startActivity(new Intent(Main.this, M1.class));

break;




default:
break;
}

}

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setListAdapter(new MyAdapter(this,
android.R.layout.simple_list_item_1,R.id.textView1 ,
getResources().getStringArray(R.array.daneshgah))) ;

}

private class MyAdapter extends ArrayAdapter <String> {

public MyAdapter(Context context, int resource, int textViewResourceId,
String[] strings) {
super(context, resource, textViewResourceId, strings);
// TODO Auto-generated constructor stub }
}


public View getView(int position, View convertView, ViewGroup parent) {

{ LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View row = inflater.inflate(R.layout.list_item, parent, false);
String[] items =getResources().getStringArray(R.array.daneshgah);
ImageView iv = (ImageView) row.findViewById(R.id.imageView1);
TextView tv = (TextView) row.findViewById(R.id.textView1);
tv.setText (items[position]);
if (position == 0) iv.setImageResource(R.drawable.moein);
else if (position == 1) iv.setImageResource(R.drawable.namjoo);
else if (position == 2) iv.setImageResource(R.drawable.ansari);
else if (position == 3) iv.setImageResource(R.drawable.ansari);
else if (position == 4) iv.setImageResource(R.drawable.ansari);
else if (position == 5) iv.setImageResource(R.drawable.namjoo);
else if (position == 6) iv.setImageResource(R.drawable.ansari);
else if (position == 7) iv.setImageResource(R.drawable.ansari);
else if (position == 8) iv.setImageResource(R.drawable.ansari);
else if (position == 9) iv.setImageResource(R.drawable.namjoo);
else if (position == 10) iv.setImageResource(R.drawable.ansari);
else if (position == 11) iv.setImageResource(R.drawable.ansari);
else if (position == 12) iv.setImageResource(R.drawable.ansari);

return row;
}




}
}
}

StoPpeR
جمعه 09 آبان 1393, 08:53 صبح
به جای thread می تونید از Handler استفاده کنید:

@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.splash);


new Handler().postDelayed(new Runnable(){
@Override
public void run() {

Intent mainIntent = new Intent(Splash.this, Main.class);
Splash.this.startActivity(mainIntent);
Splash.this.finish();
}
}, 1000);
}


این کد برای اکتیویتی splashـه که اول برنامه نمایش داده میشه و بعد از 1000 میلی ثانیه خودکار به اکتیویتی بعدی که همون main باشه میره

Apriliyaa
جمعه 09 آبان 1393, 12:32 عصر
به جای thread می تونید از Handler استفاده کنید:

@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.splash);


new Handler().postDelayed(new Runnable(){
@Override
public void run() {

Intent mainIntent = new Intent(Splash.this, Main.class);
Splash.this.startActivity(mainIntent);
Splash.this.finish();
}
}, 1000);
}


این کد برای اکتیویتی splashـه که اول برنامه نمایش داده میشه و بعد از 1000 میلی ثانیه خودکار به اکتیویتی بعدی که همون main باشه میره
توی AndroidManifest.xml هم باید تغییراتی رو انجام داد آیا؟

StoPpeR
جمعه 09 آبان 1393, 12:47 عصر
توی AndroidManifest.xml هم باید تغییراتی رو انجام داد آیا؟

خب باید اکتیویتی splash رو معرفی کنین و بعد بعنوان اولین صفحه درنظرش بگیرین
به این صورت:
<activity
android:name="com.example.splash" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />


<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>


و توجه کنین که این اینتنت فیلتر فقط برای همین اکتیوتی تعریف شده باشه (چون بصورت پیش فرض برای main هم تعریف شده است که باید ازونجا حذفش کنین)