목록보기의 편집 텍스트 값이 화면 시간 초과시 기본값으로 변경됩니다.

스티브 카마 우

나는이 listview와 함께 edittext각 행 내부 위젯. 모든 뷰를 추적하기 위해 viewholder내부를 사용합니다 custom adapter.

하지만 내 문제는 내 값을 입력하면 edittext화면 시간이 초과 될 때까지 일시 중지하고 여전히 동일한 상태에서 전화를 잠금 해제 activity하면 기본값 edittext이 다시 채워져 편집 내용을 덮어 쓴다는 것입니다.

나는 아마도 내가 오른쪽을 사용하지 않지만 여전히 같은 문제에 직면하고 있다는 것을 고려하여 여기 에서이 제안을 따랐습니다 (목록보기가 그 시간을 스크롤 할 때 edittext가 기본값을 설정했을 때)viewholder . getView()계속 전화를 받고 내 견해를 완전히 다시 그리는 것과 같습니다 .

해결 방법에 대한 아이디어 / 제안이 있습니까?

package com.shop.shopOfficer;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Filter;
import android.widget.Filterable;
import android.widget.ImageView;
import android.widget.TextView;

import com.shopOfficer.R;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by steve on 2/15/16.
 */
public class ProductListAdapter extends BaseAdapter implements Filterable {
    List<ProductModel> mStringFilterList;
    ValueFilter valueFilter;

    private Activity activity;
    private LayoutInflater inflater;
    private List<ProductModel> modelItems;

    private AddRemoveProductInterface myActivityInterface;

    public ProductListAdapter(Activity activity, List<ProductModel> modelItems, AddRemoveProductInterface myActivityInterface) {
        this.activity = activity;
        this.modelItems = modelItems;
        mStringFilterList = modelItems;
        this.myActivityInterface = myActivityInterface;
    }

    @Override
    public int getCount() {
        return modelItems.size();
    }

    @Override
    public Object getItem(int location) {
        return modelItems.get(location);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        final ViewHolderItem viewHolder;

        if (convertView == null) {

            // inflate the layout
            inflater = (LayoutInflater) activity
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = inflater.inflate(R.layout.product_item_row, null);
            // well set up the ViewHolder
            viewHolder = new ViewHolderItem();
            viewHolder.tvTitle = (TextView) convertView.findViewById(R.id.tv2);
            viewHolder.price = (TextView) convertView.findViewById(R.id.price);
            viewHolder.p = (TextView) convertView.findViewById(R.id.p);
            viewHolder.minus = (Button) convertView.findViewById(R.id.minus);
            viewHolder.add = (Button) convertView.findViewById(R.id.add);
            viewHolder.quantity = (EditText) convertView.findViewById(R.id.num);
            viewHolder.quantity.addTextChangedListener(new MyTextWatcher(convertView, position));

            viewHolder.add.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    //get the value of edittext
                    //add one item
                    int added_item = Integer.parseInt(viewHolder.quantity.getText().toString()) + 1;
                    viewHolder.quantity.setText("" + added_item);
                }
            });
            viewHolder.minus.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                    int removed_item = Integer.parseInt(viewHolder.quantity.getText().toString()) - 1;
                    if (removed_item >= 0) {

                        viewHolder.quantity.setText("" + removed_item);
                    } else {

                    }
                }
            });
            // store the holder with the view.
            convertView.setTag(viewHolder);

        } else {
            // we've just avoided calling findViewById() on resource everytime
            // just use the viewHolder
            viewHolder = (ViewHolderItem) convertView.getTag();
        }

        // object item based on the position
        final ProductModel m = modelItems.get(position);
        viewHolder.tvTitle.setText(m.getname());
        viewHolder.price.setText("(" + m.getPrice() + ")");
        viewHolder.p.setText(m.getPrice());
        viewHolder.quantity.setTag(m);
        viewHolder.quantity.setText(String.valueOf(m.getTQuantity()));

        convertView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(inflater.getContext(), EditProduct.class);
                intent.putExtra("name", m.getname());
                intent.putExtra("price", m.getPrice());
                intent.putExtra("description", m.getproductDesc());
                intent.putExtra("image_url", m.getImage_url());
                inflater.getContext().startActivity(intent);
            }
        });
        return convertView;
    }

    @Override
    public Filter getFilter() {
        if (valueFilter == null) {
            valueFilter = new ValueFilter();
        }
        return valueFilter;
    }

    private class ValueFilter extends Filter {
        @Override
        protected FilterResults performFiltering(CharSequence constraint) {
            FilterResults results = new FilterResults();
            if (constraint != null && constraint.length() > 0) {
                ArrayList<ProductModel> filterList = new ArrayList<>();
                for (int i = 0; i < mStringFilterList.size(); i++)
                    if ((mStringFilterList.get(i).getname().toUpperCase())
                            .contains(constraint.toString().toUpperCase()) ||
                            (mStringFilterList.get(i).getproductDesc().toUpperCase())
                                    .contains(constraint.toString().toUpperCase())) {


                        ProductModel m = new ProductModel(mStringFilterList.get(i)
                                .getname(), mStringFilterList.get(i)
                                .getproductId(), mStringFilterList.get(i)
                                .getImage_url(), mStringFilterList.get(i)
                                .getPrice(), mStringFilterList.get(i)
                                .getproductDesc());

                        filterList.add(m);
                    }
                results.count = filterList.size();
                results.values = filterList;
            } else {
                results.count = mStringFilterList.size();
                results.values = mStringFilterList;

                //show no results were picked
                //(myActivityInterface).onSearchEmpty("No results found");
            }
            return results;

        }

        @Override
        protected void publishResults(CharSequence constraint,
                                      FilterResults results) {
            //if(results)
            modelItems = (List<ProductModel>) results.values;
            if (modelItems.size() > 0) {

                notifyDataSetChanged();
            } else {
                (myActivityInterface).onSearchEmpty("No results found");
            }
        }

    }

    static class ViewHolderItem {

        TextView tvTitle, price, p;
        Button add, minus;
        EditText quantity;
    }

    private class MyTextWatcher implements TextWatcher {
        View view;
        int position;

        public MyTextWatcher(View convertView, int position) {
            this.view = convertView;
            this.position = position;
        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        }


        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {

        }

        @Override
        public void afterTextChanged(Editable s) {
            EditText qtyView = (EditText) view.findViewById(R.id.num);
           // ProductModel m = modelItems.get(position);
            String qtyString = s.toString().trim();
            int quantity = qtyString.equals("") ? 0:Integer.valueOf(qtyString);
            ProductModel m = (ProductModel)qtyView.getTag();
            if(m.getTQuantity() != quantity) {
                m.setTQuantity(quantity);
                String price = ((TextView) view.findViewById(R.id.p))
                        .getText().toString();
                String name = ((TextView) view.findViewById(R.id.tv2))
                        .getText().toString();
                int database_position = 1 + position;
                Log.d("my position", "" + position);
                Log.d("my value", s.toString() + price);
                (myActivityInterface).onAdded(s.toString().trim(), price, database_position, name);
            }
        }
    }
}

활동 코드 :

public class ProductList extends AppCompatActivity implements AddRemoveProductInterface {

    ListView listView, checkout_listview;
    EditText inputSearch;
    ProductListAdapter adapter;
    ProductCheckoutAdapter checkout_adapter;
    ProductHandler productDB;
    String tag_json_obj = "json_obj_req";
    TextView total;
    String unformatted_number;
    String c_phone, c_zip, c_name, total_amount, checkout_id;
    Boolean c_extras;
    fr.castorflex.android.smoothprogressbar.SmoothProgressBar progbar;
    Button button;
    byte[] b;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_product_list);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        total = (TextView) findViewById(R.id.total);
        total.setText("0.00");
        Intent i = getIntent();
        Bundle extras = i.getExtras();
        if (extras == null) {
            //is null
            c_extras = false;
        } else {
            //has extras
            c_extras = true;
            b = extras.getByteArray("picture");
            c_phone = i.getStringExtra("phone");
            c_zip = i.getStringExtra("zip");
            c_name = i.getStringExtra("name");
            total_amount = i.getStringExtra("total_amount");
            checkout_id = i.getStringExtra("checkout_id");
            if (total_amount == null) {
                total.setText("0.00");
            } else {

                total.setText(total_amount);
            }
            // Toast.makeText(getApplicationContext(), total_amount, Toast.LENGTH_LONG).show();

        }

        productDB = new ProductHandler(this);
       /* sbv = (SlideBottomPanel) findViewById(R.id.sbv);*/

        progbar = (fr.castorflex.android.smoothprogressbar.SmoothProgressBar) findViewById(R.id.prog1);
        listView = (ListView) findViewById(R.id.list);
       // listView.setDescendantFocusability(ViewGroup.FOCUS_AFTER_DESCENDANTS);
        checkout_listview = (ListView) findViewById(R.id.checkout_list);
        // insert data into the list before setting the adapter
        // otherwise it will generate NullPointerException  - Obviously
        productListRequest();
        showProductFromTable();
        inputSearch = (EditText) findViewById(R.id.inputSearch);
        inputSearch.addTextChangedListener(new TextWatcher() {

            @Override
            public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
                // When user changed the Text
               /* ProductList.this.myList.getFilter().filter(cs);*/
                if (cs.length() > 0) {
                    adapter.getFilter().filter(cs);
                } else {
                    TextView search = (TextView) findViewById(R.id.no_results);
                    search.setVisibility(View.INVISIBLE);
                    adapter.getFilter().filter(cs);
                }

            }

            @Override
            public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
                                          int arg3) {
                // TODO Auto-generated method stub

            }

            @Override
            public void afterTextChanged(Editable arg0) {
                // TODO Auto-generated method stub
            }
        });

        final LinearLayout animated_layout = (LinearLayout) findViewById(R.id.list_animated);
        //animating product sold list
        button = (Button) findViewById(R.id.submit);
        if (total.getText().toString().equals("0.00")) {
            button.setEnabled(false);
        } else {
            button.setEnabled(true);
        }
        button.setOnClickListener(new View.OnClickListener() {
            @TargetApi(Build.VERSION_CODES.HONEYCOMB)
            @Override
            public void onClick(View v) {
                Log.d("JSON PROD:", productDB.composeProductSolddJSONfromSQLite());
                Intent intent = new Intent(getApplicationContext(), CustomerIdentify.class);
                intent.putExtra("total_sld", unformatted_number);
                //send extras if exist to identify activity
                if (c_extras) {
                    intent.putExtra("picture", b);
                    intent.putExtra("c_phone", c_phone);
                    intent.putExtra("c_extras", c_extras);
                    intent.putExtra("c_zip", c_zip);
                    intent.putExtra("c_name", c_name);
                }
                startActivity(intent);
              
            }
        });
    }

    private void showProductFromTable() {
        //progbar.setVisibility(View.INVISIBLE);
        ArrayList<ProductModel> modelArrayList = productDB.loadProduct();
        //adding it to the list view.
        adapter = new ProductListAdapter(this, modelArrayList, this);
        listView.setAdapter(adapter);
        adapter.notifyDataSetChanged();
    }

    public void productListRequest() {
        progbar.setVisibility(View.VISIBLE);
        String url = "http://shopofficer.com/business/products/api";
        JsonArrayRequest jsonObjReq = new JsonArrayRequest(url,
                new Response.Listener<JSONArray>() {
                    @Override
                    public void onResponse(JSONArray response) {
                        Log.d("product list response:", response.toString());
                        //listView.setVisibility(View.VISIBLE);
                        progbar.setVisibility(View.INVISIBLE);

                        // Parsing json
                        for (int i = 0; i < response.length(); i++) {
                            try {
                                JSONObject obj = response.getJSONObject(i);
                                String name = obj.getString("name");
                                String price = obj.getString("price");
                                String description = obj.getString("description");
                                String image = obj.getString("image");
                                String product_id = obj.getString("id");
                                /*Log.d("my data is", id + title + description);*/
                                productDB.addProduct(product_id, name, price, description, image, "0");
                                showProductFromTable();
                            } catch (JSONException e) {
                                e.printStackTrace();
                            }

                        }
                    }
                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                VolleyLog.d("productlist error",
                        "Error: " + error.getMessage());

              /*  Crouton.makeText(AttendantList.this, "Something went wrong, please retry",
                       Style.ALERT, R.id.anchor).show();*/
                progbar.setVisibility(View.INVISIBLE);
            }
        }) {


            @Override
            public Map<String, String> getHeaders() throws AuthFailureError {
                HashMap<String, String> headers = new HashMap<String, String>();
                headers.put("session_id", getapikey());
                return headers;
            }
        };
        ShopOfficer.getInstance().getRequestQueue().getCache()
                .invalidate(url, true);
        // Adding request to request queue
        ShopOfficer.getInstance().addToRequestQueue(jsonObjReq, tag_json_obj);
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_select_product, menu);
        return true;
    }

    @Override
    public void onResume() {
        super.onResume();
        showProductFromTable();
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_add_product) {
            Intent intent = new Intent(getApplicationContext(), AddNewProduct.class);
            startActivity(intent);
            return true;
        }
        if (id == android.R.id.home) {
            finish();
            return true;
        }


        return super.onOptionsItemSelected(item);
    }

    @Override
    public void onAdded(String s, String price, int database_position, String name) {

        if (s.equals("")) {
        } else {
            //set total
            Double currentPrice = Double.valueOf(price);
            Double quantity = Double.valueOf(s);
            Double calculated = quantity * currentPrice;
            //Double priceDiff = Double.valueOf(df.format(extPrice - currPrice));
            productDB.update(database_position, "" + calculated);
            DecimalFormat df = new DecimalFormat("0.00##");
            //add commas thousands
            unformatted_number = String.valueOf(df.format(productDB.getTotalOfAmount()));
            double amount = Double.parseDouble(unformatted_number);
            DecimalFormat formatter = new DecimalFormat("#,###.00");
            total.setText("" + formatter.format(amount));
            if (total.getText().toString().equals(".00")) {
                total.setText("0.00");
            }
            //add product sold
            if (quantity < 1) {
                productDB.deleteSingleProductSold(Integer.valueOf(s));
            } else {
                productDB.addSale(database_position, name, String.valueOf(calculated), s);
            }
            if (total.getText().toString().equals("0.00")) {
                button.setEnabled(false);
            } else {
                button.setEnabled(true);
            }

        }
    }

    @Override
    public void onRemoved(String s) {
        total.setText("");
    }

    @Override
    public void onSearchEmpty(String s) {
        // Toast.makeText(getApplicationContext(), s, Toast.LENGTH_LONG).show();
        TextView search = (TextView) findViewById(R.id.no_results);
        search.setVisibility(View.VISIBLE);
        search.setText(s);
    }
}

bwt

뷰와 뷰 홀더는 행과 일시적으로 만 연결됩니다. 이는 편집 된 데이터를 다른 곳에 저장해야 함을 의미합니다. 그렇지 않으면보기를 스크롤하거나 다시 작성할 때와 같이보기가 다시 작성되거나 다른 행에 재사용 될 때마다 정보가 손실됩니다.

한 가지 가능한 해결책은 모델에 추가하는 것입니다.

  • 데이터 (수량)를 ProductModel. ( the_quantity)

  • 뷰 홀더 ( the_position)에 위치 속성을 추가합니다 . 이는 리스너가 익명 클래스이기 때문에 필요합니다. 그들은 position인스턴스화되었을 때 가지고 있던 값으로 매개 변수 의 값 (복사본)을 봅니다.
    이것이 컴파일러가 때때로 position매개 변수가 최종적이지 않다고 불평하는 이유 이며 일반적으로 무언가 잘못되었다는 의미입니다. 콜백 외부에서만 참조해야합니다.

  • UI-> 모델 : 수정 된 값을 모델에 저장 (두 리스너 모두)

    public void onClick(View v) {
        //get the value of edittext
        //add one item
        int added_item = Integer.parseInt(viewHolder.quantity.getText().toString()) + 1;
    
        // Store the value in the model
        // We use the position from the viewholder,
        // **not** the method's parameter (which contain 
        // the value when the listener was created)
        modelItems.get(viewHolder.the_position).the_quantity = added_item;
    
        viewHolder.quantity.setText("" + added_item);
    }
    
  • Model-> UI : 뷰 생성시뿐만 아니라 매번 UI 업데이트

    // object item based on the position
    final ProductModel m = modelItems.get(position);
    viewHolder.tvTitle.setText(m.getname());      
    
    // update the viewholder's position 
    viewHolder.the_position = position;
    viewHolder.quantity.setText("" + m.the_quantity)
    
    return convertView;
    

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

공유 기본 설정에 저장하고 목록보기에 해당 시간을 표시 할 시간 값으로 편집 텍스트의 값

분류에서Dev

목록보기를 클릭하면 내부에 버튼과 편집 텍스트가있는 미니 폼이 표시됩니다.

분류에서Dev

edittext의 기본 텍스트가 부동 값이면 편집 텍스트 커서가 왼쪽으로 재설정됩니다.

분류에서Dev

시간에 대한 마스크 편집 텍스트 상자 기본값

분류에서Dev

기본 어댑터에서 스크롤 한 후 TextView 값이 이전 값으로 다시 변경됩니다.

분류에서Dev

pywinauto 기본 시간 초과 값 변경

분류에서Dev

내 LocationManager 설정이 didUpdateLocations에 도달하면 기본값으로 다시 변경됩니다.

분류에서Dev

버튼 클릭시 목록보기에서 편집 텍스트 값을 얻는 방법

분류에서Dev

MVC (면도기)의 드롭 다운 목록에 값과 텍스트 필드를 모두 표시하는 간단한 방법이 있습니까?

분류에서Dev

클릭 이벤트를 수행하지 않고 다른 편집 텍스트에 하나의 편집 텍스트 값을 표시하는 방법

분류에서Dev

Wordpress 편집기에서 3 개의 최근 게시물 목록을 기본 텍스트로 동적으로 출력 할 수 있습니까?

분류에서Dev

설정이 회색으로 표시 될 때 Visual Studio의 텍스트 편집기에서 "변경 내용 추적"기능을 활성화하려면 어떻게해야합니까?

분류에서Dev

기본값보다 더 자주 Windows 시간을 자동으로 동기화

분류에서Dev

텍스트 상자 편집 후 반응 테이블 값 다시로드

분류에서Dev

Windows 10 시각 효과 설정은 사용자 계정 유형에서 일정 시간이 지나면 자동으로 기본값으로 복원됩니다.

분류에서Dev

Linux에서 시스템 시간을 기본값으로 변경하는 방법

분류에서Dev

현재 텍스트를 가져 와서 특정 텍스트 편집기에서 편집하는 시스템 트레이 프로그램은 무엇입니까?

분류에서Dev

Bootstrap 테마의 CSS가있는 헤더 이미지는 항상 기본값으로 다시 변경됩니다.

분류에서Dev

분할 화면 옵션이있는 텍스트 편집기

분류에서Dev

Quill 편집기에 텍스트 표시

분류에서Dev

Eclipse 텍스트 편집기 텍스트가 녹색으로 강조 표시됩니까?

분류에서Dev

핀 화면에서 다음 편집 텍스트로 이동

분류에서Dev

안드로이드 화면 하단의 텍스트 편집

분류에서Dev

초기화에 루프를 사용하면 시간이 더 빨라집니다.

분류에서Dev

Realmbaseadapter의 여러 위치에서 목록보기 항목 이미지 및 텍스트보기 다시로드

분류에서Dev

Wampserver의 사용자 권한을 편집하거나 SQLBuddy를 기본값으로 복원 하시겠습니까?

분류에서Dev

화면 보호기 시간 제한을 사용자 지정 값 (초)으로 줄입니다.

분류에서Dev

변수에 올바른 값이 있지만 '초기화되지 않은 값'경고가 표시됩니다.

분류에서Dev

Visual Studio Community 2013 SP4는 텍스트 편집기에 색상이 표시되지 않고 흑백으로 만 표시됩니다.

Related 관련 기사

  1. 1

    공유 기본 설정에 저장하고 목록보기에 해당 시간을 표시 할 시간 값으로 편집 텍스트의 값

  2. 2

    목록보기를 클릭하면 내부에 버튼과 편집 텍스트가있는 미니 폼이 표시됩니다.

  3. 3

    edittext의 기본 텍스트가 부동 값이면 편집 텍스트 커서가 왼쪽으로 재설정됩니다.

  4. 4

    시간에 대한 마스크 편집 텍스트 상자 기본값

  5. 5

    기본 어댑터에서 스크롤 한 후 TextView 값이 이전 값으로 다시 변경됩니다.

  6. 6

    pywinauto 기본 시간 초과 값 변경

  7. 7

    내 LocationManager 설정이 didUpdateLocations에 도달하면 기본값으로 다시 변경됩니다.

  8. 8

    버튼 클릭시 목록보기에서 편집 텍스트 값을 얻는 방법

  9. 9

    MVC (면도기)의 드롭 다운 목록에 값과 텍스트 필드를 모두 표시하는 간단한 방법이 있습니까?

  10. 10

    클릭 이벤트를 수행하지 않고 다른 편집 텍스트에 하나의 편집 텍스트 값을 표시하는 방법

  11. 11

    Wordpress 편집기에서 3 개의 최근 게시물 목록을 기본 텍스트로 동적으로 출력 할 수 있습니까?

  12. 12

    설정이 회색으로 표시 될 때 Visual Studio의 텍스트 편집기에서 "변경 내용 추적"기능을 활성화하려면 어떻게해야합니까?

  13. 13

    기본값보다 더 자주 Windows 시간을 자동으로 동기화

  14. 14

    텍스트 상자 편집 후 반응 테이블 값 다시로드

  15. 15

    Windows 10 시각 효과 설정은 사용자 계정 유형에서 일정 시간이 지나면 자동으로 기본값으로 복원됩니다.

  16. 16

    Linux에서 시스템 시간을 기본값으로 변경하는 방법

  17. 17

    현재 텍스트를 가져 와서 특정 텍스트 편집기에서 편집하는 시스템 트레이 프로그램은 무엇입니까?

  18. 18

    Bootstrap 테마의 CSS가있는 헤더 이미지는 항상 기본값으로 다시 변경됩니다.

  19. 19

    분할 화면 옵션이있는 텍스트 편집기

  20. 20

    Quill 편집기에 텍스트 표시

  21. 21

    Eclipse 텍스트 편집기 텍스트가 녹색으로 강조 표시됩니까?

  22. 22

    핀 화면에서 다음 편집 텍스트로 이동

  23. 23

    안드로이드 화면 하단의 텍스트 편집

  24. 24

    초기화에 루프를 사용하면 시간이 더 빨라집니다.

  25. 25

    Realmbaseadapter의 여러 위치에서 목록보기 항목 이미지 및 텍스트보기 다시로드

  26. 26

    Wampserver의 사용자 권한을 편집하거나 SQLBuddy를 기본값으로 복원 하시겠습니까?

  27. 27

    화면 보호기 시간 제한을 사용자 지정 값 (초)으로 줄입니다.

  28. 28

    변수에 올바른 값이 있지만 '초기화되지 않은 값'경고가 표시됩니다.

  29. 29

    Visual Studio Community 2013 SP4는 텍스트 편집기에 색상이 표시되지 않고 흑백으로 만 표시됩니다.

뜨겁다태그

보관