Форум программистов, компьютерный форум CyberForum.ru

Перевод Activity в ListFragment - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Обращение из сервиса к основному (UI) потоку http://www.cyberforum.ru/android-dev/thread1247434.html
как сделать так чтобы из сервиса можно было обращаться к основному потоку в котором находится UI ? изменять UI возможно ли это и если возможно то как реализовать???
Android Работа с фрагментами У меня такая ситуация, есть фрагмент с фильтрами и фрагмент с товарами. Когда я нажимаю на кнопку фильтровать в фрагменте с фильтрами как мне перейти в фрагмент с товарами? Ну сделать своего рода swipe и обновить содержимое. http://www.cyberforum.ru/android-dev/thread1247392.html
Математические знаки в джаве Android
возможно ли так гуглить лень да и не знаю как Вот мне бы как нибудь в метод в качестве параметра передовать математичкий знак ну типа так :D private void count(char s ){ 50 ((char)s) 50}
Android Расширить картинку на весь экран (по ширине) и не помешать другим элементам
Очень странная проблема у меня. Есть маленькая картинка. На разных экранах её нужно растянуть по ширине(с сохранением пропорций). Для этого в свойствах ImageView в Scr я ставлю ссылку на саму картинку(@drawable/some_image), и ScaleType ставлю fitStart. Но это работает только при свойствах layout_width layout_height равных math_parent или fill_parent. НО тогда все остальные элементы пропадают...
Android Как присвоить объекту Button координату (x,y) на форме? http://www.cyberforum.ru/android-dev/thread1247182.html
Необходимо задать объекту координату, чтобы например кнопка, когда на нее нажали, переместилась в другое место экрана. На Delphi например сдвиг осуществляется след. образом:Button1.left:=Button1.left+5; Таким образом объект сдвигался на 5 пикселей. Также я запускал таймер, и в нем повторял данное действие, и получалось, что объект движется по форме!) Как реализовать это в Android Studio?
Android Рассылка пользователям, находящимся в определенном радиусе На сервере в БД хранится информация о пользователях приложения. Один из них хочет сделать рассылку - простой текст, с информацией о событии в городе, например, - остальным пользователям. Но пользователи не только в одном городе, а во многих городах, и жителям, например, Хабаровска не очень интересно читать про мелкие события в, например, Пскове. И даже не все пользователи, находящиеся в одном... подробнее

Показать сообщение отдельно
stompbox
0 / 0 / 0
Регистрация: 16.12.2012
Сообщений: 27
26.08.2014, 23:13  [ТС]     Перевод Activity в ListFragment
Так, выкладываю:

activity_main.xml :

Кликните здесь для просмотра всего текста
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="geek.geek.info.MainActivity" >
 
<fragment
 android:id="@+id/fragment1"
 android:name="geek.geek.info.Fragment1"
 android:layout_width="match_parent"
 android:layout_height="wrap_content">
</fragment>
 
</RelativeLayout>


MainActivity.java :

Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
public class MainActivity extends FragmentActivity {
 
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
 
}


Fragment1.java :

Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
public class Fragment1 extends ListFragment implements OnItemClickListener {
 
    
    private static final String TAG = Fragment1.class.getSimpleName();
 
    // Movies json url
    private static final String url = "http://api.androidhive.info/json/movies.json";
    private ProgressDialog pDialog;
    private List<Movie> movieList = new ArrayList<Movie>();
    
    
    
    String[] menutitles;
    TypedArray menuIcons;
 
    CustomAdapter adapter;
   private List<Movie> rowItems;
 
    @Override
   public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
 
        return inflater.inflate(R.layout.list_fragment, null, false);
    }
 
    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
 
        super.onActivityCreated(savedInstanceState);
 
 
        JsonArrayRequest movieReq = new JsonArrayRequest(url,
                new Response.Listener<JSONArray>() {
                    @Override
                    public void onResponse(JSONArray response) {
                        Log.d(TAG, response.toString());
                        hidePDialog();
 
                        // Parsing json
                        for (int i = 0; i < response.length(); i++) {
                            try {
 
                                JSONObject obj = response.getJSONObject(i);
                                Movie movie = new Movie();
                                movie.setTitle(obj.getString("title"));
                                movie.setThumbnailUrl(obj.getString("image"));
                                movie.setRating(((Number) obj.get("rating"))
                                        .doubleValue());
                                movie.setYear(obj.getInt("releaseYear"));
 
                                // Genre is json array
                                JSONArray genreArry = obj.getJSONArray("genre");
                                ArrayList<String> genre = new ArrayList<String>();
                                for (int j = 0; j < genreArry.length(); j++) {
                                    genre.add((String) genreArry.get(j));
                                }
                                movie.setGenre(genre);
 
                                // adding movie to movies array
                                movieList.add(movie);
 
                            } catch (JSONException e) {
                                e.printStackTrace();
                            }
 
                        }
 
                        // notifying list adapter about data changes
                        // so that it renders the list view with updated data
                        adapter.notifyDataSetChanged();
                    }
                }, new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        VolleyLog.d(TAG, "Error: " + error.getMessage());
                        hidePDialog();
 
                    }
                });
 
        // Adding request to request queue
        
        AppController.getInstance().addToRequestQueue(movieReq);
        
        
        adapter = new CustomAdapter(getActivity(), rowItems);
        setListAdapter(adapter);
        getListView().setOnItemClickListener(this);
 
    }
 
    
    @Override
    public void onDestroy() {
        super.onDestroy();
        hidePDialog();
    }
 
    private void hidePDialog() {
        if (pDialog != null) {
            pDialog.dismiss();
            pDialog = null;
        }
    }
    
    
    
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position,
            long id) {
 
        Toast.makeText(getActivity(), menutitles[position], Toast.LENGTH_SHORT)
                .show();
 
    }
 
}

list_fragment.xml :

Кликните здесь для просмотра всего текста
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
      xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:orientation="vertical" >
 
     <ListView
         android:id="@android:id/list"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:divider="@color/list_divider"
         android:dividerHeight="1dp"
         android:listSelector="@drawable/list_row_selector" >
     </ListView>
 
</LinearLayout>


list_row.xml :

Кликните здесь для просмотра всего текста
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/list_row_selector"
    android:padding="8dp" >
 
    <!-- Thumbnail Image -->
    <com.android.volley.toolbox.NetworkImageView
        android:id="@+id/thumbnail"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:layout_alignParentLeft="true"
        android:layout_marginRight="8dp" />
 
    <!-- Movie Title -->
    <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/thumbnail"
        android:layout_toRightOf="@+id/thumbnail"
        android:textSize="@dimen/title"
        android:textStyle="bold" />
 
    <!-- Rating -->
    <TextView
        android:id="@+id/rating"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/title"
        android:layout_marginTop="1dip"
        android:layout_toRightOf="@+id/thumbnail"
        android:textSize="@dimen/rating" />
    
    <!-- Genre -->
    <TextView
        android:id="@+id/genre"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/rating"
        android:layout_marginTop="5dp"
        android:layout_toRightOf="@+id/thumbnail"
        android:textColor="@color/genre"
        android:textSize="@dimen/genre" />
 
    <!-- Release Year -->
    <TextView
        android:id="@+id/releaseYear"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:textColor="@color/year"
        android:textSize="@dimen/year" />
 
</RelativeLayout>


CustomAdapter.java :

Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
public class CustomAdapter extends BaseAdapter {
 
    Context context;
    ImageLoader imageLoader = AppController.getInstance().getImageLoader();
    private List<Movie> movieItems;
    CustomAdapter(Context context, List<Movie> rowItem) {
        this.context = context;
        this.movieItems = rowItem;
 
    }
 
    @Override
   public int getCount() {
 
        return movieItems.size();
    }
 
   @Override
    public Object getItem(int position) {
 
        return movieItems.get(position);
    }
 
   @Override
   public long getItemId(int position) {
 
        return movieItems.indexOf(getItem(position));
    }
 
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
 
        if (convertView == null) {
            LayoutInflater mInflater = (LayoutInflater) context
                    .getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
            convertView = mInflater.inflate(R.layout.list_row, null);
        }
 
        
        if (imageLoader == null)
            imageLoader = AppController.getInstance().getImageLoader();
        NetworkImageView thumbNail = (NetworkImageView) convertView
                .findViewById(R.id.thumbnail);
        TextView title = (TextView) convertView.findViewById(R.id.title);
        TextView rating = (TextView) convertView.findViewById(R.id.rating);
        TextView genre = (TextView) convertView.findViewById(R.id.genre);
        TextView year = (TextView) convertView.findViewById(R.id.releaseYear);
        
        
 
        
        
        
        Movie m = movieItems.get(position);
 
        
        thumbNail.setImageUrl(m.getThumbnailUrl(), imageLoader);
        
        // title
        title.setText(m.getTitle());
        
        // rating
        rating.setText("Rating: " + String.valueOf(m.getRating()));
        
        
        String genreStr = "";
        for (String str : m.getGenre()) {
            genreStr += str + ", ";
        }
        genreStr = genreStr.length() > 0 ? genreStr.substring(0,
                genreStr.length() - 2) : genreStr;
        genre.setText(genreStr);
        
        // release year
        year.setText(String.valueOf(m.getYear()));
        
        
 
        return convertView;
 
    }
 
}


Movie.java :

Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
public class Movie {
    private String title, thumbnailUrl;
    private int year;
    private double rating;
    private ArrayList<String> genre;
 
    public Movie() {
    }
 
    public Movie(String name, String thumbnailUrl, int year, double rating,
            ArrayList<String> genre) {
        this.title = name;
        this.thumbnailUrl = thumbnailUrl;
        this.year = year;
        this.rating = rating;
        this.genre = genre;
    }
 
    public String getTitle() {
        return title;
    }
 
    public void setTitle(String name) {
        this.title = name;
    }
 
    public String getThumbnailUrl() {
        return thumbnailUrl;
    }
 
    public void setThumbnailUrl(String thumbnailUrl) {
        this.thumbnailUrl = thumbnailUrl;
    }
 
    public int getYear() {
        return year;
    }
 
    public void setYear(int year) {
        this.year = year;
    }
 
    public double getRating() {
        return rating;
    }
 
    public void setRating(double rating) {
        this.rating = rating;
    }
 
    public ArrayList<String> getGenre() {
        return genre;
    }
 
    public void setGenre(ArrayList<String> genre) {
        this.genre = genre;
    }
 
}
 
Текущее время: 19:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru